{
 "metadata": {
  "name": "",
  "signature": "sha256:f7a45396f30d12cc6ebc7dbfa8decd4016a55da6c1ccd2ea25d313579ca4f1a2"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%matplotlib inline\n",
      "%pylab inline\n",
      "from scipy import stats\n",
      "from IPython.html.widgets import interact"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Populating the interactive namespace from numpy and matplotlib\n"
       ]
      }
     ],
     "prompt_number": 10
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Regression "
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Regression means fitting data to a line or a polynomial. The simpliest case is a line where the model is the following:\n",
      "\n",
      "$$ y = a x + b + \\epsilon $$\n",
      "\n",
      "where $\\epsilon \\sim \\mathcal{N}(0,\\sigma^2)$ and we have to determine $a$ and $b$ from the data pairs $\\lbrace (Y_i,X_i)\\rbrace_{i=1}^n$. There is a subtle point here. The variable $x$ changes, but not as a random variable in this model. Thus, for fixed $x$, $y$ is a random variable generated by $\\epsilon$. To be thorough, perhaps we should denote $\\epsilon$ as $\\epsilon_x$ to make this clear, but because $\\epsilon$ is an identically-distributed random variable at each fixed $x$, we leave it out. Because of linearity and the Gaussian additive noise, the distribution of $y$ is completely characterized by its mean and variance.\n",
      "\n",
      "$$ \\mathbb{E}(y) = a x  + b $$\n",
      "\n",
      "$$ \\mathbb{V}(y) = \\sigma^2$$\n",
      "\n",
      "Using the maximum likelihood procedure we discussed earlier, we write out the log-likelihood  function as \n",
      "\n",
      "$$ \\mathcal{L}(a,b)  = \\sum_{i=1}^n \\log \\mathcal{N}(a X_i +b , \\sigma^2) \\propto \\frac{1}{2 \\sigma^2}\\sum_{i=1}^n (Y_i-a X_i-b)^2 $$\n",
      "\n",
      "Note that I just threw out  most of the terms that are irrelevent to the maximum-finding. Taking the derivative of this with respect to $a$ gives the following equation:\n",
      "\n",
      "$$ \\frac{\\partial \\mathcal{L}(a,b)}{\\partial a}= 2 \\sum_{i=1}^n X_i (b+ a X_i -Y_i) =0$$\n",
      "\n",
      "Likewise, we do the same for the $b$ parameter\n",
      "\n",
      "$$ \\frac{\\partial \\mathcal{L}(a,b)}{\\partial b}=2\\sum_{i=1}^n (b+a X_i-Y_i) =0$$\n",
      "\n",
      "Solving these two equations for $a$ and $b$ gives the parameters for the line we seek."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "a = 6;b = 1 # parameters to estimate\n",
      "x = linspace(0,1,100)\n",
      "# x = rand(100)*100 # x does not have to be monotone for this to work \n",
      "y = a*x + np.random.randn(len(x)) +b\n",
      "\n",
      "p,var_=np.polyfit(x,y,1,cov=True) # fit data to line\n",
      "y_ = np.polyval(p,x) # estimated by linear regression \n",
      "\n",
      "# draw comparative fits and hisogram of errors\n",
      "fig,axs=subplots(1,2)\n",
      "fig.set_size_inches((10,2))\n",
      "ax =axs[0]\n",
      "ax.plot(x,y,'o',alpha=.5)\n",
      "ax.plot(x,y_)\n",
      "ax.set_xlabel(\"x\",fontsize=18)\n",
      "ax.set_ylabel(\"y\",fontsize=18)\n",
      "ax.set_title(\"linear regression; a =%3.3g\\nb=%3.3g\"%(p[0],p[1]))\n",
      "ax = axs[1]\n",
      "ax.hist(y_-y)\n",
      "ax.set_xlabel(r\"$\\Delta y$\",fontsize=18)\n",
      "ax.set_title(r\"$\\hat{y}-y$\",fontsize=18)\n",
      "#ax.set_aspect(1/2)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 11,
       "text": [
        "<matplotlib.text.Text at 0xda558b0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0xd706f70>"
       ]
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The graph on the left shows the regression line plotted against the data. The estimated parameters are noted in the title. You can tweak the code in the cell above to try other values for $a$ and $b$ if you want. The histogram on the right shows the errors in the model. Note that the $x$ term does not have to be uniformly monotone. You can tweak the code above as indicated to try a uniform random distribution along the  x-axis. It is also interesting to see how the above plots change with more or fewer data points."
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "As separate tagged problems"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "We said earlier that we can fix the index and have separate problems of the form\n",
      "\n",
      "$$ y_i = a x_i +b + \\epsilon $$\n",
      "\n",
      "where $\\epsilon \\sim \\mathcal{N}(0,\\sigma^2)$. What could I do with just this one component of the problem? In other words, suppose we had k-samples of this component as in $\\lbrace y_{i,k}\\rbrace_{k=1}^m$. Following the usual procedure, we could obtain estimates of the mean of $y_i$ as \n",
      "\n",
      "$$ \\hat{y_i} = \\frac{1}{m}\\sum_{k=1}^m y_{i,k}$$\n",
      "\n",
      "However, this tells us nothing about the individual parameters $a$ and $b$ because they are not-separable in the terms that are computed, namely, we may have\n",
      "\n",
      "$$ \\mathbb{E}(y_i) = a x_i +b  $$\n",
      "\n",
      "but we still only have one equation and the two unknowns. How about if we consider and fix another component $j$ as in\n",
      "\n",
      "$$ y_j = a x_j +b + \\epsilon $$\n",
      "\n",
      "and likewise, we have\n",
      "\n",
      "$$ \\mathbb{E}(y_j) = a x_j +b  $$\n",
      "\n",
      "so at least now we have two equations and two unknowns and we know how to estimate the left hand sides of these equations from the data using the estimators $\\hat{y_i}$ and  $\\hat{y_j}$. Let's see how this works in the code sample below."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "x0 =x[0]\n",
      "xn =x[80]\n",
      "\n",
      "y_0 = a*x0 + np.random.randn(20)+b\n",
      "y_1 = a*xn + np.random.randn(20)+b\n",
      "\n",
      "fig,ax=subplots()\n",
      "ax.plot(x0*ones(len(y_0)),y_0,'o')\n",
      "ax.plot(xn*ones(len(y_1)),y_1,'o')\n",
      "ax.axis(xmin=-.02,xmax=1)\n",
      "\n",
      "a_,b_=inv(np.matrix([[x0,1],[xn,1]])).dot(vstack([y_0,y_1]).mean(axis=1)).flat\n",
      "x_array = np.array([x0,xn])\n",
      "ax.plot(x_array,a_*x_array+b_,'-ro')\n",
      "ax.plot(x,a*x+b,'k--');"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nIuIh/x+1WSiNn9Nf9QAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x77ed610>"
       ]
      }
     ],
     "prompt_number": 12
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def plot_2_estimator(n=50):\n",
      "    x0 =x[0]\n",
      "    xn =x[n]\n",
      "\n",
      "    y_0 = a*x0 + np.random.randn(20)+b\n",
      "    y_1 = a*xn + np.random.randn(20)+b\n",
      "\n",
      "    fig,ax=subplots()\n",
      "    ax.plot(x0*ones(len(y_0)),y_0,'o',alpha=.3)\n",
      "    ax.plot(xn*ones(len(y_1)),y_1,'o',alpha=.3)\n",
      "    ax.axis(xmin=-.25,xmax=1,ymax=10,ymin=-2)\n",
      "\n",
      "    a_,b_=inv(np.matrix([[x0,1],[xn,1]])).dot(vstack([y_0,y_1]).mean(axis=1)).flat\n",
      "    x_array = np.array([x0,x[-1]])\n",
      "    ax.grid()\n",
      "    ax.plot(x_array,a_*x_array+b_,'-ro')\n",
      "    ax.plot(x,a*x+b,'k--');\n",
      "\n",
      "interact(plot_2_estimator,n=(1,99,1));"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEACAYAAACj0I2EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlclXX6//HXR7ZAUVwARU3QccEgl9KWSaGs1Jq0JrPl\nZ2XNZOYy2NRM2T7fmZapab6WS24lZYst+p12d1FzHUsUV3AhBRU1BMRQts/vj4OIO2e97/Phej4e\nPh7c97k553p74+XhupejtNYIIYTwf/WsLkAIIYRnSEMXQghDSEMXQghDSEMXQghDSEMXQghDSEMX\nQghD1KqhK6XeU0rlKaUyaqxropRaoJTKVErNV0pFeK9MIYQQF1Pbd+gzgH5nrHsaWKC17gAsqloW\nQghhEVXbC4uUUrHA11rrxKrlbUCS1jpPKdUcSNNad/JWoUIIIS7MnRl6tNY6r+rrPCDaA/UIIYRw\nkUcOimrH23y5h4AQQlgo0I3vzVNKNddaH1BKtQAOnmsjpZQ0eiGEcIHWWjmzvTvv0L8CHqz6+kHg\nPxcoyqk/L774otPf4w9/TMxlYiZTc5mYyeRcrqjtaYufACuBjkqpvUqph4DXgJuUUpnADVXLHpGd\nne2pp7IVE3OZmAnMzGViJjA3lytqNXLRWt97nodu9GAtQggh3GDLK0WHDh1qdQleYWIuEzOBmblM\nzATm5nJFrc9Dd/kFlNLefg0hhDCNUgrtw4OiXpOWlmZ1CV5hYi4TM4GZuUzMBObmcoUtG7oQQgjn\nychFCCFsyJiRixBCCOfZsqGbOhMzMZeJmcDMXCZmAnNzucKWDV0IIYTzZIYuhBA2JDN0IYSow2zZ\n0E2diZmYy8RMYGYuEzOBublcYcuGLoQQwnkyQxdCCBuSGboQQtRhtmzops7ETMxlYiYwM5eJmcDc\nXK6wZUMXQgjhPJmhCyGEDckMXQgh6jBbNnRTZ2Im5jIxE5iZy8RMYG4uV9iyoQshhHCezNCFEMKG\nZIYuhBB1mC0buqkzMRNzmZgJzMxlYiYwN5crbNnQhRBCOE9m6EIIYUMyQxdCiDrMlg3d1JmYiblM\nzARm5jIxE5ibyxW2bOhCCCGc5/YMXSk1FhgCVAIZwENa6xM1HpcZuhBCOMnnM3SlVCzwCNBda50I\nBAD3uPOcQgghXOPuyKUIKAPClFKBQBiQ625Rps7ETMxlYiYwM5eJmcDcXK5wq6FrrfOBN4E9wD6g\nQGu90BOFCSGEcI5bM3SlVDvga6AXUAh8Dnyhtf6oxjYyQxdCCCe5MkMPdPM1rwRWaq1/qSpgDnAt\n8FHNjYYOHUpsbCwAERERdO3aleTkZODUr0uyLMuyLMt1eTktLY3U1FSA6n7pLHffoXfB0bx7AMeB\nVGCt1npijW2cfoeelpZWHdgkJuYyMROYmcvETGBuLp+f5aK13gB8AKwDNlatnurOcwohhHCN3MtF\nCCFsSO7lIoQQdZgtG/rJAwWmMTGXiZnAzFwmZgJzc7nClg1dCCGE82SGLoQQNiQzdCGEqMNs2dBN\nnYmZmMvETGBmLhMzgbm5XGHLhi6EEMJ5MkMXQggbkhm6EELUYbZs6KbOxEzMZWImMDOXiZnAvFzL\nvv2W5/r2del7bdnQhRCiLlr27bfMS0nhH/Pnu/T9MkMXQgibeK5v3+pmrkBm6EII4ZfWrCFw/Xq3\nnsKWDd20mdhJJuYyMROYmcvETODnuU6cgJkzoWdPuPdeyhs3BqDSxaezZUMXQgij5ebC889DmzaO\nhv7885CVRdyoUXSqX5+HXXxamaELIYQvaA0rVsD48bBgAdx3H4waBZ06VW+yevVqPps5k8Dt23lj\n0SKnZ+jS0IUQwptKSuCTTxyN/NgxRxMfOhQaNrzgtxlzYZFfz8QuwMRcJmYCM3OZmAlsnGvPHnj6\nacdYZfZsePVVSjduZFZUFNcPHMj+/fs9/pK2bOhCCOGXtIa0NLjzTujWzXHQc+VKcqZM4YWVK2kT\nF8fUqVMZOXIkzZo18/jLy8hFCCHcdewYfPSRY6xSUQGjR8P990ODBkyZMoWxY8dy3333MWLECDp3\n7lyrp3Rl5CINXQghXLVrF0yaBKmp8Nvfwp/+BDfcAOpUHz548CChoaGEh4c79dQyQ7c5E3OZmAnM\nzGViJrAgl9aOs1QGDHCcP64U/Pe/7Pz3v6FPn9OaOUBUVJTTzdxVtmzoQghhO0ePwsSJ0LkzPPEE\n3HYbpTt2MOuKK+j1wAMkJSVRUFBgaYkychFCiAvJyoIJE+DDD+H662H0aHLatmXK1KlMnz6d+Ph4\nRo4cyYABAwgKCvLYy7oycgn02KsLIYQpKith3jzHQc516+CPf4T0dGjdGoCPX3+dgoICFi9eTHx8\nvMXFnmLLkYvM+vyHiZnAzFwmZgIP5yoshLfecly9+dxzMHiw43zyV16pbuYAf/3rXxk/frytmjnY\ntKELIYRPbd0KI0dCXBysXg2pqWTMmMFL2dnokBCrq6s1maELIeqmigr49lvHWCUjAx59lNKHHmLO\n6tVMnDiRXbt2MWzYMMaOHUtwcLDPy5MZuhBCXMyRI/Duu47zxyMjHRcB3XUXk2fM4G/XXEN8fDwp\nKSkMHDjQowc5fcHtkYtSKkIp9YVSaqtSaotS6mp3n1Nmff7DxExgZi4TM4ETuTIyYNgwaNsWNmyA\nWbNgzRoYMgRCQoiPj2fRokUsXryYQYMG+V0zB8+8Q38L+E5rPUgpFQjU98BzCiGE+8rL4csvHWOV\nrCwYPpyKzZsJiIk5a9OkpCQLCvQst2boSqlGwHqtddsLbCMzdCGEbx0+DNOnO8Yql14Ko0eT0b49\nE6dOZcWKFWzYsIF69ex9TogVl/7HAYeUUjOUUj8ppaYppcLcfE4hhHDN+vXw8MPQvj1kZlL6+efM\nGjWK3hMn0u+222jRogXz5s2zfTN3lbsjl0CgOzBKa/1fpdQ44GnghZobDR06lNjYWAAiIiLo2rUr\nycnJwKn5V83l9PR0xowZc97H/XW55qzPDvV4YnncuHEX3Z/+uHxynV3qkZ+/8y+n//gjY1q1gvHj\nScvMhIEDSc7KgmbN6NOrF8XFxTz33HMMGDCAFStWkJmZSUzVyMUO9Z9cTktLIzU1FaC6XzpNa+3y\nH6A5sLvG8nXAN2dso521ZMkSp7/HH5iYy8RMWpuZy7hMBw5o/T//o5c0bap1UpLWX3yhdVnZaZv8\n+uuv1tTmAVW906me7PZ56EqpZcAftdaZSqmXgFCt9VM1HtfuvoYQQlRbu9ZxkPObb+Cuuyh88EHS\ny8uNOKhZk1W3zx0NfKSU2gBcDrzigecUok7IO5THwjULmbdmHgvXLCTvUJ7VJdnTiROOm2NddRXc\nfTd06ULG118zvF49Yn/3Oz788EOrK7QFtxu61nqD1rqH1rqL1vr3WutCd5+z5qzPJCbmMjET+CZX\n3qE8lm5ZSklECaURpZRElLB0y1KvNXW/3Ff79sELL0BsLLz/Pjz7LJ+/9hq9vvySfnffTUxMDNOn\nT2fatGlWV2oLZh7qFcIPZOzKILR56GnrQpuHsil7k0UV2YTWsHIl3HMPJCTAL7/A4sXVHyqxdft2\nUlJSyM7O5oUXXqBp06ZWV2wbci8XISwyb808SiNKz1ofXBBM36v6WlCRxY4fd1y9OX48FBU5bpb1\n0EPQqJHVlVlC7uUihB8JIOCc6wPr1bF/lnv3wjvvOO6v0r07hU8/zQf795O7bx+v1dFm7ipbjlz8\nctZXCybmMjET+CZXYttESg6UnLau5EAJCbEJXnk9W+0rrWHpUhg0CLp2hWPHyJg+neFt2hA7bBg/\nrFjBrbfeWqunslUui9WxtwJC2Ed0ZDTxUfF8v+Z7ynQZQSqI/j36Ex0ZbXVp3vPrr/DRR46PdCst\nhVGj0O+9x6333MPG2bMZNmwYmzdvrr7wRzhHZuhCWOTkWS41D4yWHCghqXOSeU09O9vxAcupqXDN\nNY5b1t54IyjHiHj9+vUkJCT45R0OvcWq89CFEC4w/iwXrWHRIrj9drjySnRlJb/MnQtffQU33VTd\nzAG6desmzdwDbNnQTZ2JmZjLxEzgm1wVVHAk/wjrN63np4yfWL9pPUfyj1BeWe6V1/PZvioudhzk\nTEiAMWMovP56xj/9NJ2/+46n3nnH4y9n6s+gK2zZ0IWoC4oKiticvZmyxmWUNymnrHEZm7M3c7Tw\nqNWluWbHDnj8cWjTBhYsIOOJJxh+7bXEvvQSP/z3v0yePFkuAPIymaELYZHP5n/Gj0d/JLjxqc+r\nLD1SSo+GPRh00yALK3NCZSXMn+84d3ztWvjDH+Cxxyhv2ZKrr76aAQMG8Mgjj9CiRQurK/U7ch66\nEH6kUaNGJDRO4Oe8n6nQFQSoADpc2oHwynCrS7u4oiLHAc6JEyEszHGQ84svINRxTCAQWLdunaUl\n1kW2HLmYOhMzMZeJmcA3uQIIIKJhBF3ad6F7h+50ad+FiIYRXruwyCOZtm2DUaMgNhb9ww8seuwx\n5r36quNDJUJDL/79XmDqz6ArbNnQhagLfH1hkcsqKhy3qu3bF5KTKQwNZfzjj9M5I4OU6dM5Wlxs\ndYWiiszQhbBQxtYM5q6dSymlBBNMv579SIxPtLosh4ICeO89x1ilaVOODRvGE2vW8OkXX3DzzTcz\ncuRIevXqhVJOjXlFLckMXQg/kncoj1WZqyhpUILWmgpVwarMVUQ1i7L2wqJNmxxXcn76Kdx6K3z8\nMVx1FWFa06m4mM1/+5tcyWlTthy5mDoTMzGXiZnAN7mW/bSMnb/uPO20xZ2/7mT5+uVeeb0LZiov\nh//7P7jhBrj5ZoiJga1bT32oBI53jGPGjLFdMzf1Z9AV8g5dCIvsOLCD4NbBp60Ljg5mx94dvivi\nl19g+nSYNAkdE8PiG25gUqNG9AgO5unmzX1Xh/AImaELYZHX3n+NY62PnbW+QU4DnnrgqXN8hwel\npzvOHZ8zh8L+/fmgZUsmffMNAQEBjBw5kiFDhhAe7genTxpM7uUihB9p26ItpUdO/4CL0iOltGvR\nzjsvWFYGn38OvXrBbbdBu3YcWL6cuLlz+WHPHqZMmUJGRgaPPfaYNHM/ZcuGbupMzMRcJmYC3+RK\n6pZEZEkkOZty2J2xm5xNOUSWRNKray/PvtDBg/Dyy6TFxDgOdqakwO7d8MwzNE9IIDMzk08//ZTe\nvXv75Rkrpv4MukJm6EJYqGHDhrSLaFd9pWjDyoaee/J16xxjla++Iqd/fw4/9RQ8+eRZmzVr1sxz\nryksJTN0ISyycM1C9tfbT/aBbCqppB71iG0eSwwx9OnRx7UnLS11XII/fjx63z6W9O3LxP37WbJi\nBVOnTmXQID+5R4yQ89CF8CeHCw+z+sBqCioK0GgUigNHDtCruQsjl/37YcoUmDqV4vbtmZGQwKSC\nAgJXrWLkyJGkfvyxzMXrAJmh+5CJuUzMBL7JtTlrM9mF2eT8mkPur7nk/JpDdmE2W3dsrd0TaA2r\nVsF990HnzpCXBwsWUPDRR6w4epQpU6awceNGhg8fTnh4uOyrOkDeoQthkaLiIn7e/zNHGxwFBWgI\nLw6nfUz7C3/j8eOOqzjHj3dcnj9yJEyaBBERALQCZs2a5fX6hf3IDF0Ii9zxxB1sKN9AeYNytNIo\nrQgsDqRbYDdmvzn77G/IyXF8EtD06eTExzO1RQv6jxrFNb/9re+LF14n56EL4UcKjhUQ3CaYBjEN\nCG8RToOYBgS3CaagpODURlrD8uUweDA6MZFFW7ZwZ5cuXL5xI/lNm9LcZpfhC2vZsqGbOhMzMZeJ\nmcA3uaKaRhFSEkLJ0RKOFR2j5GgJISUhRDaOhJISePdd6NYN/vhHNrZtS+eoKFKysrjxjjv4+eef\nmTBhAnFxcbV+PdlX5vPIDF0pFQCsA3K01rd54jmFMF1MRAyZRzOpH1rfsUJDy7xyhmXshEsvddwU\n65//hJtuos3Ro0y55Ra5Xa24II/M0JVSfwauAMK11gPOeExm6EKcw7TPpvH5xs8pjTxB18wj3Ll8\nH/FZhey9vjfdxk+Fdl66BYDwC5bM0JVSrYBbgOk4jtULIWohLiqKMfsvIfXvP3L3x1n8oxjahlzC\ngt/1lWYuXOKJGfr/An8BKj3wXIC5MzETc5mYCbyca+dO+POfuW7AEPb98BN3xjThhgrIvzyOu54d\nTNvftPXKy8q+Mp9bM3Sl1O+Ag1rr9Uqp5PNtN3ToUGJjYwGIiIiga9euJCc7Nj+5M2oup6enX/Bx\nWbbPcnp6uq3q8dTySR57/t69YeFC0l58EbZsIXn4cP7+0D1M+OQzOvXuxOhX7iEkLIQdy3eweeNm\nBt08yFZ/H3ZeNqVfpKWlkZqaClDdL53l1gxdKfUKcD9QDlwCNARma60fqLGNzNBF3XX0KLz/vuMu\nh5dcAqNHw733QlgY36/6nkMBh9hzcE/1zbnaRLchqjKKvlf1tbpyYTGf38tFa/0M8EzViycBT9Zs\n5kLUWZmZMGECpR9+yP917Mgtb71F+M03Q40zVILqBdG4UWMaN2p82rcGFskF3MI1nj4P3SNvxc/8\ntdcUJuYyMRO4mKuyEr79Fvr1I+faa3n+p59oExTElNBQDv7mN6c1c4DEtomUHCg5bV3JgRISYhPc\nqPz8ZF+Zz2NvBbTWS4Glnno+IfxGQQHMmAETJ5IeHMzfw8JYUlnJfV27smjqVDp37nzOb4uOjCY+\nKp7v13xPmS4jSAXRv0d/oiOjfRxAmELu5SKEq7ZscczGP/kE+veH0aNZDaxPT6/VZ3LmHcpj6Zal\nhDYPrV5XcqCEpM5J0tSFSzN0aehCOKOiAr75xnGnw82b4dFHHX9atHD6qRauWUhJRMlZ68OKwlz/\ngAthDGNuzmXqTMzEXCZmgnPkys+HN96gtF07Zj35JNfv28f+1avhpZdcauYAFVScc315ZblLz3cx\ndWZf1WFyOF2IC9m4EcaPJ+ezz5gaG8u04mLiL7+ckSNG0MzNOx0GEEBBUcHZH0FXT+6gKFwjIxch\nzlReDv/5j2OssnMnU6+4gqeXLeP/DRnCiBEjiI+P98jLZGzN4L2092jQsUH1uuLtxTyc/DCJ8Yke\neQ3hv+QzRYVwx6FDMG2a40MkYmMdFwHdcQe3HznCvaGhHv9MzryiPLp17caefacuLGrftT0Hiw96\n9HVE3SEzdB8yMZcRmX76CR56iJ3t2jnus/L116T9/e8weDAEBREVFeWVD1iuoILGTRrTJaEL3RO7\n0yWhC42bNJYZupNMzeUKeYcu6qayMpg9m9K33mJOVhYTw8PZ3aABm958k4iICPBBkwgggCP5R8je\nl43WGqUUsTGxtAxs6fXXFmaSGbqoWw4cgKlTyZk0iamXXMK0wkI6denCyFGjGDhwIEFBQT4rRWbo\n4kJkhi7E+axZ4zjI+e23cPfdfHzffeSXlrJoxIjzXsnpbXlFebTt0JYfM3+snqFf0eEKmaELl8kM\n3YdMzGXrTCdOwMyZ0LOn4w6H3brBrl0weTJ//fe/mTBhwnmbuS9yHS48TE5BDq07tCa2YyytO7Qm\npyCHQ0cOeeX1bL2v3GBqLlfIO3RhntxcmDyZjEmTmB0RwYv/+7+oW2+FgACrKzvNz/t/Jrh18Gnr\nghsHszd3r0UVCX8nM3RhBq1hxQpKx41jzty5TGrYkF2VlTzy2GOMHTuW4ODgiz+Hj82aN4v1+esJ\njj5VW2leKd2adOOevvdYWJmwA5mhi7qnpMRxc6zx45mcm8vfTpwgvnt3UlJSGDBggE8PcjqrWUQz\nWqlW/JjxI+WUE0ggV8RfQWTjSKtLE35KZug+ZGIuyzLt2QNjx0KbNjB7Nrz6KvGffsqiVatYvGwZ\nd955p1vN3Be5ohtGs2vnLlontiYuMY7Wia3ZtXMXUQ2ivPJ6Jv78gbm5XCHv0IX/0BqWLqXi7bcJ\nWLoUHngAVq6E3/wGgCSLy3OWXCkqPE1m6ML+jh2Djz4i41//YuKhQ6wIC2PD1q3Ua9jQ6srcMm/N\nPEojSs9aH1wQLJ8pKmSGLgyzezelb7/NnOnTmRgczC6lGJaSwrxhw/y+mYPjStHsn7P5cevpM/TO\nja05L174P5mh+5CJuTyeSWtYsAAGDIAePbjn22+ZmphIypQpZO/fz4svvUSMm7etrQ1f7KuAigDm\nLp1LSUwJZTFllMSUMHfpXOqVeeefpYk/f2BuLlfIO3RhD0ePwgcfOD7SLSjIcafDWbP4SClCQ0Mv\n/v1+aG3WWjr07MCh/EPV90Pv0LMD63au4/prr7e6POGHZIYurJWVReGbb5L+8cck3Xyzo5H37g3K\nqdGhX3r5/Zc53vr4Wesv2XsJzz74rAUVCTuRGbrwD5WVMG8eGa+8wsR16/gUGHT77SR98onVlflU\n4Hn++QXXs99FUMI/yAzdB/Ly8lm4cBuvvz6ThQu3kZeXb3VJHuPUvioshLfe4ouWLek9eDD9Nm0i\n5i9/YfPOnUyzWTP3xc/gLT1voXh78WnrircX0+/Kfl55PdP+XZ1kai5XyDt0L8vLy2fp0oOEhnai\nvPwAJSWdWLp0G0lJEB3dxOryfGPrVsds/JNPoG9fttx6K3/q25eBt99u6ys5vS0xPpGHeZi56+ZS\nWllKcL1gBicPllvnCpfJDN3LFi7cRklJp7PWh4Vtp0+fjhZU5CMVFY5b1Y4fDxkZMGwYDB8OPjhD\nRQgTyAzdhioqzj3VKi839KDfkSMUTpjAB+PGkRsSwmuvvw533QUhIVZXJoTxZIbuZQEBldVfZ2Sk\nVX8dGGjGby3V+yojg4y77mJ48+bE/uMf/NC9O7d++ikMGeKXzdykn8GTTMwE5uZyhbxD97LExCi+\n/HI1Bw5EsGvXXsrLt9G8eQEDB3awujT3lZfDsmXol17i1tWr2RAczKMpKWx5/HFatGhhdXVC1Dlu\nzdCVUq2BD4AoQANTtdZvn7FNnZ6h5+Xl8+WXOzl4sAUVFYqAAE1U1H4GDmznvwdFDx+G6dPhnXeg\ndWsYPZr1cXEkdOtWpw9yCuFJrszQ3W3ozYHmWut0pVQD4Efgdq311hrb1OmGbtJBUf3TT+T/6180\n/f57uOMOGDUKune3uiwhjORKQ3drhq61PqC1Tq/6uhjYCrh9GoNJM7GaB0VrztD95qBoWRmFM2bw\ndtu2dL7qKp7KyoKsLHjvPeje3ah9VZOJuUzMBObmcoXHDooqpWKBbsAaTz2nCWoeFK3J9gdF8/LI\nGDWK4RERxA4bxsoWLZg8bx7T1q6FZs2srk4IcQ4eOShaNW75Akipeqd+mqFDhxIbGwtAREQEXbt2\nJTk5GTj1v+uZyyed73F/WS4qymTDhrVceeUDJCYmk5GRxokTexgx4ne2qO+s5cmTYc4crlu7loeC\ngki88UamP/AAd9555zm3P7nONvXL8nmXk5OTbVWPJ5dPsks9riynpaWRmpoKUN0vneX2hUVKqSDg\nG+B7rfW4czxep2fo4DgwumnTIcrLFYGBmoSESHsdEC0thc8/d1wElJcHI0fCww9DExvVKEQd4/MZ\nulJKAe8CW87VzF115v+6/i46ugl9+nQkJGQfffp0tE0z17m5LLr/fuY1bw6pqfDMM7BjBzz5ZK2b\nuWn76iQTc5mYCczN5Qp3Z+i/BYYA1yul1lf98c6dhfzYyZtzrV271/qbc2lN4fz5jL/iCjpfeikp\n333H0RdeOPWhEgEB1tUmhHCL3MvFy06eh56X14LKSkW9eproaAvOQz9+nGPvv88Tzz3Hp/n53Hz5\n5Yx8+WV69e+PqgP3HhfC38i9XGxo6dId7NwZQ3Bwq+p1O3fC8uU7GTTIBw19717HBUDvvktYt250\nuuMONr/wAjGtWl38e4UQfkXu5eJlu3YVUVraiF27cli58nN27cqhtLQRO3cWee9FtYZly2DQIOja\nFY4dg+XLUXPnMmbqVI82c5P2VU0m5jIxE5ibyxXyDt3Ljh49SmZmLsXFDSgocNz+pKAgl/r1j3r8\ntfSxYyx54QUmTp9Oj5AQnn7xRZgxA8LDPf5aQgj7kRm6l40Z8z4rV7YiJKRP9boTJxZx3XW5/Pvf\nD3jkNQo3buSDP/+ZSWlpBISFMXLoUIb84x+EN2zokecXQviezNBtqH79CCIjL+XYse1orVBKExl5\nKWFhx9x7Yq1h8WIOvPEGnefP56b27Zk8cya977lHDnIKUUfJDN3LwsPr07FjS1q1akpg4FZatWpK\nx44tCQ+v79oTFhc7DnImJEBKCs3vuIPM3bv5dPt2ku691+fN3KR9VZOJuUzMBObmcoW8Q/eytm0b\ncuRIPnFxrVCqEbGxzSgtzaFdO+fGITnLl1Pvgw+ImTMHkpIcn9GZnAxKIXdWEUKAzNC9Li8vn5kz\nN7J5cyPKy+sRGFjJZZcVcv/9l1/0PHRdUcGSN95g4rhxLDl4kMm33cbgt9+GNm18VL0QwioyQ7ep\no0cL2LfvIGVlQQQFlXHppcEX3j43l9SUFCZ9/TUB9eoxctAgUt98k/CoKB9VLITwRzJD97Ivv/yJ\n1atDOH78cn75pZjjxy9n9eoQvv56/dkbb9sGo0ZReNllrFi7lilvvknGsWM8NnOmbZu5SfuqJhNz\nmZgJzM3lCls2dJOkpe2iqCiOyspOVFa2prKyE0VFcSxZstuxQWUlfPMN9O3rmIk3bkyrzZuZtWcP\nvUeNQtWTXSSEqB2ZoXtZ376TOLw7mob7JhCmS/lVBVMUM4qoyHR61F9D/82buaZlSxg9GgYPhpAQ\nq0sWQtiAzNBtqLJoE/G7/8mH5XvQwGLg0azlZGZV8JsOHYgePx5+/3uryxRCGMCWv8+bNBNrtO8H\nPizfw0agDZAC/JkK+sZ0YPz27bT182Zu0r6qycRcJmYCc3O5Qt6he1lUfcdfcRvgCeBPgAI2NXLx\nwiIhhDgPmaF72YOXXcn7W348a/3Qy64kddN/LahICOEPfP4RdOLighJv5uH6p18I9HBYG4ITb7ao\nIiGEqWzZ0E2aicUl9uFwj+e5IbwnV4e044bwnhzu+TxtEm6wujSPMGlf1WRiLhMzgbm5XCEzdC87\nfPgAeb94dkt9AAAKE0lEQVReQ3CXP3CsII2giGTyft1Cfv4Gq0sTQhhGZuhe9vjjH7BkSSTl5XE4\nfiGqJDBwN336HObNN++3ujwhhE3JDN2GQkIa0rRpfQICKoAKAgIqaNq0PkFB8ilCQgjPsmVDN2km\ndvhwMc2a9aZTp8uIjMyjU6fLaNasN/n5bn7AhU2YtK9qMjGXiZnA3FyusGVDN8mVV7bi+PHT5+XH\nj2+ge/eWFlUkhDCVzNC9bOHCbaxZE8iyZXspLw8gMLCC3r1bc/XVFfTp09Hq8oQQNiX3crGh6Ogg\nDh/OpmfPUx8SffjwIqKiYq0rSghhJFuOXEyaieXllREXF0tOzgJWr36TnJwFxMXFcvBgubWFeYhJ\n+6omE3OZmAnMzeUKeYfuZYcPF5Gb25BWrW6ivDyIVq2Syc3dRlRUkdWlCSEMIzN0L/vnP+dTXHz2\nZf4NGy7gL3+5yYKKhBD+wJLz0JVS/ZRS25RSWUqpp9x9PtO0adOE0tKc09aVlubQunVjiyoSQpjK\nrYaulAoAJgD9gM7AvUqpeHeLMmkm1qxZAxISGhESksPevZ8TEpJDQkIjIiPNuLDIpH1Vk4m5TMwE\n5uZyhbvv0HsCO7TW2VrrMmAWMND9ssyRmBhFSEguXbq0okOHSLp0aUVISC4JCZFWlyaEMIxbM3Sl\n1CCgr9b6karlIcBVWuvRNbap0zN0gLy8fDZtOkR5uSIwUJOQEEl0dBOryxJC2JgVM/S63amdcPI/\ntbr+n5sQwnvcPW0xF2hdY7k1kHPmRkOHDiU2NhaAiIgIunbtSnJyMnBq/lVzOT09nTFjxpz3cX9a\nnjPnKzZsKODKKx8gI8Px2PLlaxkx4ndERzexvD53l8eNG3fR/emPyyfX2aUeTyyfmc3qejy1bEq/\nSEtLIzU1FaC6XzrL3ZFLILAd6APsA9YC92qtt9bYxumRS1paWnVgf7dw4TZKSjoBkJGRRmJiMgBh\nYduNuPTfpH1Vk4m5TMwE5uZyZeTi9nnoSqn+wDggAHhXa/3qGY/X6Rn6vHmZlJZ2OGt9cHAmffue\nvV4IIcCie7lorb8Hvnf3eUwVEFB5zvWBgXX3PzkhhHfIvVy8LDExipKSbQDVM/SSkm3GnLZo0r6q\nycRcJmYCc3O5wpYN3STR0U1ISooiLGw7gYF7CQvbTlJSlJy2KITwOLmXixBC2JB8pqgQQtRhtmzo\nps7ETMxlYiYwM5eJmcDcXK6wZUMXQgjhPJmh+0BeXj4ZGQepqKhHQEAliYlyUFQIcWGWXFh00Reo\n4w09Ly+fpUsPEhraqXpdSck2OdNFCHFBxhwUNWkmlpFxqpmfPA89NLQTmzYdsrAqzzFpX9VkYi4T\nM4G5uVxhy4ZukoqKc/8Vl5c79R+vEEJclIxcvKzmzblqMuXmXEII7zBm5GKSmpf+n2TSpf9CCPuw\nZUM3aSZW89L/rVtnGnfpv0n7qiYTc5mYCczN5Qq377YoLi46ugnR0U0ICNhPcrKMWYQQ3iEzdCGE\nsCGZoQshRB1my4Zu6kzMxFwmZgIzc5mYCczN5QpbNnQhhBDOkxm6EELYkMzQhRCiDrNlQzd1JmZi\nLhMzgZm5TMwE5uZyhS0buhBCCOfJDF0IIWxIZuhCCFGH2bKhmzoTMzGXiZnAzFwmZgJzc7nClg1d\nCCGE82SGLoQQNiQzdCGEqMNcbuhKqTeUUluVUhuUUnOUUo08VZSpMzETc5mYCczMZWImMDeXK9x5\nhz4fuExr3QXIBMZ6piRIT0/31FPZiom5TMwEZuYyMROYm8sVLjd0rfUCrXVl1eIaoJVnSoKCggJP\nPZWtmJjLxExgZi4TM4G5uVzhqRn6w8B3HnouIYQQLrjgR9AppRYAzc/x0DNa66+rtnkWKNVaf+yp\norKzsz31VLZiYi4TM4GZuUzMBObmcoVbpy0qpYYCjwB9tNbHz7ONnLMohBAucPa0RZc/JFop1Q/4\nC5B0vmbuSkFCCCFc4/I7dKVUFhAM5FetWqW1HuGpwoQQQjjH61eKCiGE8A1bXCmqlGqilFqglMpU\nSs1XSkWcY5vWSqklSqnNSqlNSqk/WVHrxSil+imltimlspRST51nm7erHt+glOrm6xpdcbFcSqn/\nV5Vno1JqhVLqcivqdFZt9lfVdj2UUuVKqd/7sj5X1PJnMFkptb7q31Kaj0t0SS1+BpsppeYqpdKr\ncg21oEynKKXeU0rlKaUyLrBN7fuF1tryP8DrwF+rvn4KeO0c2zQHulZ93QDYDsRbXfsZNQYAO4BY\nIAhIP7NG4Bbgu6qvrwJWW123h3JdAzSq+rqfKblqbLcY+Aa40+q6PbCvIoDNQKuq5WZW1+2hXC8B\nr57MBPwCBFpd+0Vy9QK6ARnnedypfmGLd+jAAOD9qq/fB24/cwOt9QGtdXrV18XAViDGZxXWTk9g\nh9Y6W2tdBswCBp6xTXVWrfUaIEIpFe3bMp120Vxa61Va68KqRY9eaOZFtdlfAKOBL4BDvizORbXJ\ndB8wW2udA6C1PuzjGl1Rm1z7gYZVXzcEftFal/uwRqdprZcDRy6wiVP9wi4NPVprnVf1dR5wwQan\nlIrF8b/aGu+W5bSWwN4ayzlV6y62jd2bX21y1fQH/ONCs4vmUkq1xNE43qlaZfeDTrXZV+2BJlUj\nzHVKqft9Vp3rapNrGnCZUmofsAFI8VFt3uRUv3D5tEVnXeAipWdrLmit9YXOXVdKNcDxbiml6p26\nndT2H/uZp3LavUnUuj6l1PU4rhz+rffK8Zja5BoHPF31c6k4e9/ZTW0yBQHdgT5AGLBKKbVaa53l\n1crcU5tczwDpWutkpVQ7YIFSqovW+qiXa/O2WvcLnzV0rfVN53us6qBAc631AaVUC+DgebYLAmYD\nH2qt/+OlUt2RC7Susdwax/+oF9qmVdU6O6tNLqoOhE4D+mmtL/RrpF3UJtcVwCxHL6cZ0F8pVaa1\n/so3JTqtNpn2Aoe11iVAiVJqGdAFsHNDr02ua4GXAbTWO5VSu4GOwDqfVOgdTvULu4xcvgIerPr6\nQeCsZl317uhdYIvWepwPa3PGOqC9UipWKRUM3I0jW01fAQ8AKKWuBgpqjJvs6qK5lFKXAnOAIVrr\nHRbU6IqL5tJat9Vax2mt43D8ZviYjZs51O5n8EvgOqVUgFIqDMfBti0+rtNZtcm1DbgRoGrO3BHY\n5dMqPc+5fmH1Ud6qo7dNgIU4bsM7H4ioWh8DfFv19XVAJY6j2+ur/vSzuvZzZOmP4wycHcDYqnWP\nAo/W2GZC1eMbgO5W1+yJXMB0HGcVnNw3a62u2VP7q8a2M4DfW12zJzIBT+I40yUD+JPVNXsiF47f\noL6u+neVAdxndc21yPQJsA8oxfGb08Pu9Au5sEgIIQxhl5GLEEIIN0lDF0IIQ0hDF0IIQ0hDF0II\nQ0hDF0IIQ0hDF0IIQ0hDF0IIQ0hDF0IIQ/x/nc9NihturMwAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0xcde3630>"
       ]
      }
     ],
     "prompt_number": 13
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "We can write out the solution for the estimated parameters for this case where $x_0 =0$\n",
      "\n",
      "$$ \\hat{a} = \\frac{\\hat{y_i} - \\hat{y_0}}{x_i}$$\n",
      "\n",
      "$$ \\hat{b} = \\hat{y_0}$$\n",
      "\n",
      "The expectation of the first estimator is the following\n",
      "\n",
      "$$ \\mathbb{E}(\\hat{a}) = \\frac{a x_i }{x_i}=a$$\n",
      "\n",
      "$$ \\mathbb{E}(\\hat{b}) =b$$\n",
      "\n",
      "$$ \\mathbb{V}(\\hat{a}) = \\frac{2 \\sigma^2}{x_i^2}$$\n",
      "\n",
      "$$ \\mathbb{V}(\\hat{b}) = \\sigma^2$$\n",
      "\n",
      "The above results show that the estimator  $\\hat{a}$ has a variance that decreases as larger points $x_i$ are selected which is what we observed in the interactive graph above. "
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "So, where are we now? We have a way of doing regression when there is only one sample at each $x_i$ point and we can do the same when we have many samples at each of two x-coordinates. Is there a way to combine the two approaches? This is something that is not considered in the usual discussions about regression, which always consider only the first case.\n",
      "\n",
      "In this light, let us re-consider the first regression problem. We have only one sample at each $x_i$ coordinate and we want to somehow combine these into unbiased estimators of $a$ and $b$. The explicit formulas in this case are well known as the following:\n",
      "\n",
      "$$ \\hat{a} = \\frac{\\mathbf{x}^T\\mathbf{y}-(\\sum X_i)(\\sum Y_i)/n}{\\mathbf{x}^T \\mathbf{x}  -(\\sum X_i)^2/n} \n",
      "$$\n",
      "\n",
      "$$ \\hat{b} = \\frac{-\\mathbf{x}^T\\mathbf{y}(\\sum X_i)/n+\\mathbf{x}^T \\mathbf{x}(\\sum Y_i)/n}{\\mathbf{x}^T \\mathbf{x} -(\\sum X_i)^2/n}$$\n",
      "\n",
      "Note that you can get the $\\hat{b}$ from $\\hat{a}$ by observing that for each component we have\n",
      "\n",
      "$$ Y_i = \\hat{a} X_i + \\hat{b}  $$\n",
      "\n",
      "and then by summing over the $n$ components we obtain \n",
      "\n",
      "$$ \\sum_{i=1}^n Y_{i} = \\hat{a} \\sum_{i=1}^n X_i + n \\hat{b}  $$\n",
      "\n",
      "Then, solving this equation for $\\hat{b}$ with the $\\hat{a}$ above gives the equations shown as below\n",
      "\n",
      "$$ \\hat{b} = \\frac{\\sum_{i=1}^n Y_{i}-\\hat{a} \\sum_{i=1}^n X_i}{n}$$"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "In the case where there are only two $X_i$ values, namely $X_0=0$ and $X_j$, we obtain\n",
      "\n",
      "$$ \\hat{a} = \\frac{X_j \\sum_{\\lbrace X_j\\rbrace} Y_i-m X_j \\frac{\\sum Y_i}{n}}{m X_j^2- m^2 X_j^2/n}  \n",
      "= \\frac{ \\sum_{\\lbrace X_j\\rbrace} Y_i/m- \\frac{\\sum_{\\lbrace X_0\\rbrace} Y_i+\\sum_{\\lbrace X_j\\rbrace} Y_i}{n}}{ X_j (1- m/n)}= \\frac{\\hat{y}_j-\\hat{y}_0}{X_j}\n",
      "$$\n",
      "\n",
      "$$ \\hat{b} = \\frac{\\sum_{\\lbrace X_0\\rbrace} Y_i }{n-m} = \\hat{y}_0 $$\n",
      "\n",
      "\n",
      "which is the same as our first estimator. This means that the general theory is capable of handling the case of multiple estimates at the same $X_j$. So what does this mean? We saw that having samples further out along the x-coordinate reduced the variance  of the  estimator in the two-sample study. Does this mean that in the regression model, where there is only one sample per x-coordinate, that those further along the x-coordinate are likewise more valuable in terms of variance reduction?\n",
      "\n",
      "This is tricky to see in the above, but if we consider the simplified model without the y-intercept, we can obtain the following:\n",
      "\n",
      "$$ \\hat{a} = \\frac{\\mathbf{x}^T \\mathbf{y}}{\\mathbf{x}^T \\mathbf{x}} $$\n",
      "\n",
      "with corresponding \n",
      "\n",
      "$$ \\mathbb{V}(\\hat{a}) = \\frac{\\sigma^2}{\\|\\mathbf{x}\\|^2} $$\n",
      "\n",
      "And now the relative value of large $\\mathbf{x}$ is more explicit."
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Geometric View"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "In vector notation, we can write the following:\n",
      "\n",
      "$$ \\mathbf{y} = a \\mathbf{x} + b\\mathbf{1} + \\mathbf{\\epsilon}$$\n",
      "\n",
      "Then, by taking the inner-product with some $\\mathbf{x}_1 \\in \\mathbf{1}^\\perp$ we obtain\n",
      "\n",
      "$$ \\langle \\mathbf{y},\\mathbf{x}_1  \\rangle = a \\langle \\mathbf{x},\\mathbf{x}_1 \\rangle + \\langle \\mathbf{\\epsilon},\\mathbf{x}_1\\rangle  $$\n",
      "\n",
      "and then sweeping the expectation over this (recall that $\\mathbb{E}(\\mathbf{\\epsilon})=\\mathbf{0}$)gives\n",
      "\n",
      "$$ \\langle \\mathbf{y},\\mathbf{x}_1  \\rangle = a \\langle \\mathbf{x},\\mathbf{x}_1 \\rangle $$\n",
      "\n",
      "which we can finally solve for $a$ as \n",
      "\n",
      "$$ \\hat{a} = \\frac{\\langle\\mathbf{y},\\mathbf{x}_1 \\rangle}{\\langle \\mathbf{x},\\mathbf{x}_1 \\rangle} $$\n",
      "\n",
      "that was pretty neat but now we have the mysterious $\\mathbf{x}_1$ vector. Where does this come from?  If we project $\\mathbf{x}$ onto the $\\mathbf{1}^\\perp$, then we get the minimum-distance (in the $\\mathbb{L}_2$ sense) approximation to $\\mathbf{x}$ in the $\\mathbf{1}^\\perp$ space. Thus, we take\n",
      "\n",
      "$$ \\mathbf{x}_1 = P_{\\mathbf{1}^\\perp} (\\mathbf{x}) $$\n",
      "\n",
      "Remember that $P_{\\mathbf{1}^\\perp} $ is a projection matrix so the length of $\\mathbf{x}_1$ is smaller than $\\mathbf{x}$. This means that the denominator in the $\\hat{a}$ equation above is really just the length of the $\\mathbf{x}$ vector in the coordinate system of $P_{\\mathbf{1}^\\perp} $. Because the projection is orthogonal (namely, of minimum length), the Pythagorean theorem gives this length as the following:\n",
      "\n",
      "$$ \\langle \\mathbf{x},\\mathbf{x}_1 \\rangle ^2=\\langle \\mathbf{x},\\mathbf{x} \\rangle- \\langle\\mathbf{1}^T \\mathbf{x} \\rangle^2 $$\n",
      "\n",
      "The first term on the right is the length of the $\\mathbf{x}$ vector and last term is the length of $\\mathbf{x}$ in the coordinate system orthogonal to $P_{\\mathbf{1}^\\perp} $, namely that of $\\mathbf{1}$. This is the same as the denominator of the $\\hat{a}$ estimator we originally wrote. After all that work, we can use this geometric interpretation to understand what is going on in typical linear regression in much more detail. The fact that the denominator is the orthogonal projection of $\\mathbf{x}$ tells us that this is the choice of $\\mathbf{x}_1$ that has the strongest effect (i.e. largest value) on reducing the variance of $\\hat{a}$. This is because it is the term that enters in the denominator which, as we observed earlier, is what is reducing the variance of $\\hat{a}$. We already know that $\\hat{a}$ is an unbiased estimator and because of this we know that it is additional of minimum variance. Such estimators are know and minimum-variance unbiased estimators (MVUE).\n",
      "\n",
      "In the same spirit, let's examine the numerator of $\\hat{a}$. We can write $\\mathbf{x}_{1}$ as the following\n",
      "\n",
      "$$ \\mathbf{x}_{1} = \\mathbf{x} -  P_{\\mathbf{1}} \\mathbf{x}$$\n",
      "\n",
      "where $P_{\\mathbf{1}}$ is projection matrix  of $\\mathbf{x}$ onto the $\\mathbf{1}$ vector. Using this, the numerator of $\\hat{a}$ becomes \n",
      "\n",
      "$$ \\langle \\mathbf{y}, \\mathbf{x}_1\\rangle  =\\langle \\mathbf{y}, \\mathbf{x}\\rangle -\\langle \\mathbf{y}, P_{\\mathbf{1}} \\mathbf{x}\\rangle $$\n",
      "\n",
      "Note that is the outer product of $\\mathbf{1}$ as in the following:\n",
      "\n",
      "$$ P_{\\mathbf{1}}  = \\mathbf{1} \\mathbf{1}^T \\frac{1}{n} $$\n",
      "\n",
      "so that writing this out explicitly gives \n",
      "\n",
      "$$ \\langle \\mathbf{y}, P_{\\mathbf{1}} \\mathbf{x}\\rangle = \\left(\\mathbf{y}^T \\mathbf{1}\\right) \\left(  \\mathbf{1}^T \\mathbf{x}\\right) $$\n",
      "\n",
      "which, outside of a $\\frac{1}{n}$ scale factor I am omitting to reduce notational noise, is the same as\n",
      "\n",
      "$$ \\left(\\sum Y_i\\right)\\left(\\sum X_{i}\\right)/n $$\n",
      "\n",
      "So, plugging all of this together gives what we have seen before as \n",
      "\n",
      "$$ \\hat{a} \\propto \\mathbf{y}^T \\mathbf{x} - \\left(\\sum Y_i\\right)\\left(\\sum X_{i}\\right)/n $$"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The variance of $\\hat{a}$ is the following:\n",
      "\n",
      "$$ \\mathbb{V}(\\hat{a}) = \\sigma^2 \\frac{\\|\\mathbf{x}_1\\|^2}{\\langle\\mathbf{x},\\mathbf{x}_1\\rangle^2}$$\n",
      "\n",
      "Doing the exact same thing with $\\hat{b}$ gives\n",
      "\n",
      "$$ \\hat{b}  = \\frac{\\langle \\mathbf{y},\\mathbf{x}^{\\perp} \\rangle}{\\langle \\mathbf{1},\\mathbf{x}^{\\perp}  \\rangle}=\n",
      " \\frac{\\langle \\mathbf{y},\\mathbf{1}-P_{\\mathbf{x}}(\\mathbf{1})\\rangle}{\\langle \\mathbf{1},\\mathbf{1}-P_{\\mathbf{x}}(\\mathbf{1})  \\rangle}$$\n",
      " \n",
      "where \n",
      "\n",
      "$$ P_{\\mathbf{x}} = \\frac{\\mathbf{\\mathbf{x} \\mathbf{x}^T}}{\\| \\mathbf{x} \\|^2} $$\n",
      "\n",
      "This is unbiased with variance\n",
      "\n",
      "$$ \\mathbb{V}(\\hat{b}) = \\sigma^2 \\frac{\\langle \\mathbf{\\xi},\\mathbf{\\xi}\\rangle}{\\langle \\mathbf{1},\\mathbf{\\xi}\\rangle^2}$$\n",
      " \n",
      "where\n",
      "$$ \\mathbf{\\xi} = \\mathbf{1} - P_{\\mathbf{x}} (\\mathbf{1}) $$"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Regularized Linear Regression "
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Now, after moving all of that machinery, we should have a very clear understanding of what is going on in every step of the  linear regression equation. The payoff for all this work is that now we know where to intercede in the construction to satisfy other requirements we might have to deal with real-world data problems."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "n = len(x)\n",
      "one = ones((n,))\n",
      "\n",
      "P_1 = ones((n,n))/n-eye(n)*1.35\n",
      "#P_1 = ones((n,n))/n\n",
      "P_x = outer(x,x)/dot(x,x)-eye(n)*1.3\n",
      "x_1 = x-dot(P_1,x)\n",
      "sumx = sum(x)\n",
      "o=[]\n",
      "ofit=[]\n",
      "for i in range(500):\n",
      "    y = a*x + np.random.randn(n)+b\n",
      "    a_hat = dot(x_1,y)/dot(x_1,x)\n",
      "    b_hat = dot(y,one-dot(P_x,one))/dot(one,one-dot(P_x,one))\n",
      "    o.append((a_hat,b_hat))\n",
      "    ofit.append(tuple(polyfit(x,y,1)))\n",
      "    \n",
      "ofit = array(ofit)\n",
      "o = array(o)\n",
      "\n",
      "fig,axs=subplots(2,2)\n",
      "fig.set_size_inches((6,5))\n",
      "ax=axs[0,0]\n",
      "ax.set_title('Trading bias and variance')\n",
      "ax.hist(o[:,0],20,alpha=.3)\n",
      "ax.hist(ofit[:,0],20,alpha=.3)\n",
      "ax=axs[0,1]\n",
      "ax.plot(o[:,0],ofit[:,0],'.')\n",
      "ax.plot(linspace(4,10,2),linspace(4,10,2))\n",
      "ax.set_aspect(1)\n",
      "ax.set_title('var=%3.3g vs. %3.3g'%(var(o[:,0]),var(ofit[:,0])))\n",
      "ax=axs[1,0]\n",
      "ax.hist(o[:,0],20,alpha=.3)\n",
      "ax.hist(ofit[:,0],20,alpha=.3)\n",
      "ax=axs[1,1]\n",
      "ax.plot(o[:,1],ofit[:,1],'.')\n",
      "ax.plot(linspace(0,1,3),linspace(0,1,3))\n",
      "ax.set_aspect(1)\n",
      "ax.set_title('var=%3.3g vs. %3.3g'%(var(o[:,1]),var(ofit[:,1])))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 14,
       "text": [
        "<matplotlib.text.Text at 0xd9e0630>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nIvz/En6lSiUvsxwAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0xd622cb0>"
       ]
      }
     ],
     "prompt_number": 14
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "one = ones((n,))\n",
      "xi=one-dot(P_x,one)\n",
      "(a_,b_),var_= polyfit(x,y,1,cov=True)\n",
      "sigma2_est = var(polyval([a_,b_],x)-y)\n",
      "\n",
      "b_hat_var = sigma2_est*dot(xi,xi)/dot(one,xi)**2\n",
      "a_hat_var = sigma2_est*dot(x_1,x_1)/dot(x_1,x)**2\n",
      "a_hat_lo,a_hat_hi=stats.norm(a_hat,sqrt(a_hat_var)).interval(.95)\n",
      "b_hat_lo,b_hat_hi=stats.norm(b_hat,sqrt(b_hat_var)).interval(.95)\n",
      "\n",
      "plot(x,y,'o',alpha=.5,ms=5.,lw=4.,label='data')\n",
      "plot(x,polyval([a_hat,b_hat],x),lw=4.,label='regularized',alpha=.5)\n",
      "plot(x,polyval([a,b],x),lw=3.,label='true',alpha=.5)\n",
      "plot(x,polyval(polyfit(x,y,1),x),lw=3.,label='MVUE',alpha=.5,color='k')\n",
      "plot(x,polyval([a_hat_hi,b_hat_hi],x),'--c')\n",
      "plot(x,polyval([a_hat_lo,b_hat_lo],x),'--c')\n",
      "legend(loc=0);"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0xcff1ad0>"
       ]
      }
     ],
     "prompt_number": 15
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "x = linspace(0,1,n)\n",
      "sumx=sum(x)\n",
      "y = a*x + np.random.randn(n)+b\n",
      "sumy = sum(y)\n",
      "def plot_lin_regularizer(lam= 0.1):\n",
      "    P_1 = ones((n,n))/n-eye(n)*lam\n",
      "    x_1 = x-dot(P_1,x)\n",
      "    a_hat = dot(x_1,y)/dot(x_1,x)\n",
      "    b_hat = (sumy - a_hat*(sumx))/n\n",
      "    y_hat = polyval([a_hat,b_hat],x)\n",
      "    plot(x,y,'o',alpha=.5,ms=5.,lw=4.,label='data')\n",
      "    plot(x,y_hat,lw=4.,label='regularized',alpha=.5)\n",
      "    title(r'$\\lambda$ = %3.3g;MSE=%3.2g,ahat=%3.2f'%(lam,linalg.norm(y_hat-y)**2,\n",
      "                                                a_hat),fontsize=14)\n",
      "    plot(x,polyval([a,b],x),lw=3.,label='true',alpha=.5)\n",
      "    plot(x,polyval(polyfit(x,y,1),x),lw=3.,label='MVUE',alpha=.5,color='k')\n",
      "    legend(loc=0)\n",
      "    axis((0,1,0,10))\n",
      "interact(plot_lin_regularizer,lam=(-1.,3.,.05))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 16,
       "text": [
        "<function __main__.plot_lin_regularizer>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nkhIefPBBjh07RkxMDD/60Y+4/fbbAWhpaeGLX/wiubm5rFq1ik984hNeXF2FQuFPKM/cg71797J/\n/37Ky8u55ZZb+P73v09bWxtPPPEEt912Gy0tLQDceeedbN68mdbWVnbt2sULL7xwSfnkUvs+9alP\nUVZWRlNTE9nZ2XzhC18Ysv+ll17isccew2azceWVVw6GMgG88cYbdHV10dXVxSuvvEJCQgLXXnst\n3d3dXH/99dx11100NTWxd+9evv71r3P69GkA7r//foKDg6mvr+eZZ57h2WefVYtSKxRzHGXMBxBC\n8NBDD5GUlMSePXu44YYb2LFjBwDXXXcdFouF//mf/6GqqoqCggJ++MMfYjAYuOKKK7j55pu9Pu7O\nnTsxm80YjUYef/xxioqK6OrqGtx/6623smXLFgACAwOBkVLNmTNn2LlzJ6+88gpJSUm8+eabLF68\nmHvvvRedTkdWVhaf+cxn2LdvHy6Xi1dffZUf/vCHmEwm1qxZw7333qsmBSkUcxxlzD1ISUkBtBWG\n9u3bx6JFiwZ/H374IfX19VitViIjIwkKChpSzxtj6HK5+Pa3v82yZcsIDw9n8eLFAIPLywkhBvs0\nFh0dHdxyyy385Cc/4fLLLx/s/+HDh4f0/8UXX6ShoYHm5macTueQdlWudYVi7uM/mvkk9O3p4oLU\nkJqayt13381//ud/jihTWVlJa2srvb29mEwmAKqqqtDptPei2Wymp6dnsLzL5aKpqWnU47344ou8\n/vrrvPPOO6SlpdHe3k5kZOSEXwxut5s777yTa6+9li996UuD21NTU9m6dStvvfXWiDoulwuDwUBV\nVRUrV64c7L9CoZjbKM98FO666y7eeOMN3nrrLVwuF319fRw4cIDa2lrS0tKwWCzs2rULh8PBoUOH\nePPNNwfrrlixgr6+Pv785z/jcDj48Y9/TH9//6jHsdlsBAYGEhkZSXd3N48++uiQ/aMZdc9t3/3u\nd+np6eEXv/jFkDI33ngjZ86c4YUXXsDhcOBwOMjPz6ekpAS9Xs9nPvMZdu3aRW9vLx9//DG7d+9W\nmrlCMcdRxnwUkpOTee211/jpT39KbGwsqamp/Mu//MtgaODvfvc7Dh06RFRUFI899hh33HEHAQEB\nAISHh/Pv//7vfOlLXyI5OZmQkJAhkobnAOY999xDWloaSUlJrF27li1btgwxqp5lR9u2d+/eQTkl\n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\n",
       "text": [
        "<matplotlib.figure.Figure at 0xcd6d7d0>"
       ]
      }
     ],
     "prompt_number": 16
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Multi-dimensional Gaussian Model"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Although the procedure for estimating the parameters is straightforward, we can approach it from another angle to get more insight using a multi-dimensional Gaussian model. We denote the vector of the set of $\\lbrace Y_i\\rbrace$ as $\\mathbf{y}$ and likewise for $\\mathbf{x}$. This means we can write the multi-dimensional Gaussian model as $\\mathcal{N}(a \\mathbf{x}+ b \\mathbf{I},\\mathbf{I}\\sigma^2)$ where $\\mathbf{I}$ indicates the identity matrix."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def lin_regress(x,y,lam=0,kap=0,alpha=0.95):\n",
      "    'linear regression with optional regularization'\n",
      "    n = len(x)\n",
      "    sumx = sum(x)\n",
      "    sumy = sum(y)\n",
      "    one = ones((n,))\n",
      "    P_1 = ones((n,n))/n-eye(n)*lam\n",
      "    P_x = outer(x,x)/dot(x,x)-eye(n)*kap\n",
      "    xi=one-dot(P_x,one)\n",
      "    x_1 = x-dot(P_1,x)\n",
      "    a_hat = dot(x_1,y)/dot(x_1,x)\n",
      "    b_hat = dot(y,one-dot(P_x,one))/dot(one,one-dot(P_x,one))\n",
      "    (a_,b_)= polyfit(x,y,1)\n",
      "    sigma2_est = var(polyval([a_,b_],x)-y) # OLS for noise estimate\n",
      "    b_hat_var = sigma2_est*dot(xi,xi)/dot(one,xi)**2\n",
      "    a_hat_var = sigma2_est*dot(x_1,x_1)/dot(x_1,x)**2\n",
      "    a_hat_lo,a_hat_hi=stats.norm(a_hat,sqrt(a_hat_var)).interval(alpha)\n",
      "    b_hat_lo,b_hat_hi=stats.norm(b_hat,sqrt(b_hat_var)).interval(alpha)\n",
      "    return (a_hat,b_hat,a_hat_hi-a_hat_lo,b_hat_hi-b_hat_lo)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 17
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def plot_lin_regularizer_band(lam= 0.0,kap=0.0):\n",
      "    fig,ax = subplots()\n",
      "    ax.plot(x,y,'o',alpha=.3)\n",
      "    a_hat,b_hat,adelta,bdelta = lin_regress(x,y,lam=lam,kap=kap)\n",
      "    ax.plot(x,polyval([a_hat,b_hat],x),color='k',lw=3.)\n",
      "    ax.plot(x,polyval([a_hat+adelta/2,b_hat+bdelta/2],x),'--k')\n",
      "    ax.plot(x,polyval([a_hat-adelta/2,b_hat-bdelta/2],x),'--k')\n",
      "    ax.fill_between(x,polyval([a_hat+adelta/2,b_hat+bdelta/2],x),\n",
      "                      polyval([a_hat-adelta/2,b_hat-bdelta/2],x),\n",
      "                      color='gray',\n",
      "                      alpha=.3)\n",
      "    ax.set_title('95% confidence band')\n",
      "    ax.axis(xmin=x[0],xmax=x[-1],ymin=-1,ymax=10)\n",
      "interact(plot_lin_regularizer_band,lam=(0,0.3,.05),kap=(0,2,.1))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAEKCAYAAADgl7WbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd41FXa8PHvSU9IA1JApImhhgBCUCBAaIogAiuQRAUR\ny65uffbZ1XXfa3f1fffZZi+rz7p2XZMAkdBFkN40CCItBOklBEIS0iaZ9nv/mGScZFImk5nJJNyf\n68p1JfOrMwz3nDnnPvdRmqYhhBCiffNp6xsQQgjRehLMhRCiA5BgLoQQHYAEcyGE6AAkmAshRAcg\nwVwIIToACeaiQ1BKjVNKnVBKlSqlZiul1imlFjWybx+llFkp5TXv/5r7uaWjXUt4jte8mYVnKaUG\nKaU2K6VKaoLgHJtttcGuzObn/9hsv18pdUkpdVoplWzzeD+l1C6llPLw0wH4v8BrmqaFa5q2UtO0\nGZqmfdQG9yFEm/Br6xsQnqeU8gNWAm8CU4BkYLVSaoSmaSdsdg3X6s0qqzn2r8AIYBTwOjC0ZvNr\nwK/qH+MhvYCjbXBdIbyCtMxvTAOB7pqmvaJZbAF2AQvr7dfQ+6MrcFHTtALgS+AWAKXUPOC8pmk5\nzV1cKfWYUupoTZfIEaXUiJrHBymltiqlipVSh5VSs2yO+UAp9U+l1Jqa4/bWdhUopU7W3Mfqmm0B\nNed5pGa7r1LqBaXU1Zp9Z9a7nwil1Ls13zYuKKX+X20XjFJqsVJqp1LqeaVUkVLqlFJqus2xXZRS\n7yulLtZsX2Gz7R6l1Lc1z2eXUmooTZuplDpZc5//qP2GU/ONZ7NSqrBm2ydKqQib65xRSv23Uupg\nzTetDKVUoM3239o8tyXN/fuIdkrTNPm5wX6AeKCs3mMbgc9qfu8DmIELwHngPaBrzTYf4DjQA5gF\nfAWEAgeAzg5ce37NeUfW/N0PS6vaH/ge+B2Wb4yTgFKgf81+HwCFWL4N+AKfAOk25z0NTLb5ewuw\npOb3nwDHau65c802E+BTs30F8BYQDETXPKfHa7YtBvTAI4CqOddFm+usBdKBiJr7Hl/z+AigAEis\nOW5RzT0GNPK6mLF8OEYCPWte40dsXqMpNa9RFLANeLnec98LdKt5fkeBH9dsmw5cBgYDIcCnNde6\npa3fh/Lj2p82vwH5aYN/dEtQOAn8tub3O4FqYH3N9k7AbTWBOwZYBnxuc/xkYE9NUEwAXgIergnA\nm4HPgSGNXHsD8PMGHh8P5Nd77FPgTzW/fwC8bbPtbuCYzd9NBfPNtcG55u9pNQHNB4gFqoAgm+1p\nwOaa3xcDJ2y2hdQcGwN0x/KhENHA83kL+L/1HssFJjTyupiBO23+fgLY1Mi+c4D99Z77/TZ//x14\nq+b394C/2GyLk2DeMX+kz/wGpGmaoWbA83XgaSAHWIolqKFpWgWwv2b3K0qpnwH5SqlOmqZVaJq2\nGRgDoJQahiXw/wY4A4zD0tJ+p3afem7G8kFS301YvgXYOlvzOICGpaVbS4flG4Ejutc79zmb33tj\n+UDLtxm39am3z+XaXzRNq6zZLxRLK7lI07TrDVyzN7BIKfVzm8f8a+6lMfXv8SYApVQs8CqQBITV\n3F9RvWMv2/yus7lOdyz/vrbnFR2QBPMblKZph7AMfAKglNoNvN/MYXX60Gv6dF8Hfoale8JX07Tz\nSqkrWFrsDTkP3NrA45eAnkoppdU0IbEExNxm7skR+Vg+YGrZ/n4ey7eSrpqmmVt43vNAF6VURAMB\n/RzwP5qm/aUF5+uFpTuo9veLNb//Bcs3gHhN00psPogd0dRzFx2IDIDeoJRSQ5VSQUqpEKXUb7B0\nN3xQs220UmqAUspHKdUVS5bKFk3Tyuqd5lHgG03TvgOuAcFKqUFYulsaan2DpcX+G6XUbcriVqVU\nLyx9vpXAU0op/5qUx3uAjNpbbsXTXQr8QinVQynVGUu/PACapuUDXwAvKaXCap5zP6XUhOZOWnPs\neuBNpVRkzX3XHvdv4Cc1r6VSSnVSSs1USjX1beI3NefpCfwCyKx5PBSoAEqVUj2wdI81p/b1Wgos\nrhlcDgH+5MCxoh2SYH7jWoilNVyAJfhO0zTNULPtFixBqhQ4hOVre5rtwUqpKCwB5w8AmqYZsbTQ\nN2NJebTtXrDSNG058D9Y+sNLgc+wDJwasAyo3g1cBd4AFmqalld7aM1PndM5+Fz/jaWv/iCwD8iq\nd+wiIADLwGERljGCbg5edyFgwPINogDLa4Kmad8Aj9U8jyLgRM11mrIS+AbLYPIaLP3dAM9h6cq6\nDqxu4P7rs96zpmmfA69g+XfJwzLIKosYdEDqh2+0DWxU6j0saVxXNE0bWvNYFywtht5Y+kgXaJpW\n4v5bFUII0ZjmWubvY0ltsvU7YKOmaf2xfMr/zu4oIYQQHtVkyxwsU7uB1TYt81xgoqZpBUqpbsBW\nTdMGuvtGhRBCNM6ZPvNYzTL7Dyx9hLEuvB8hhBBOaNUAaE0KmQymCCFEG3Mmz7xAKdVN07TLSqnu\nwJWGdlJKSZAXQggnaJrW4lRcZ1rmq4CHan5/CMhu4obkR9P405/+1Ob34C0/8lrIayGvRdM/zmoy\nmCul0oHdwACl1Hml1MPA34BpSqk8LDU6/ub01YUQQrhEk90smqalNbJpqhvuRQghhJNkBqgHJCcn\nt/UteA15LX4gr8UP5LVovWbzzJ0+cZ16SUIIIRyhlELz0ACoEEIILyPBXAghOgAJ5kII0QFIMBdC\niA5AgrkQQnQAEsyFEKIDkGAuhBAdgARzIYToACSYCyFEByDBXAghOgAJ5kII0QFIMBdCiA5AgrkQ\nQnQAEsyFEKIDkGAuhBAdgARzIYToAJpcNk4IIYR7FBQUcejQFUwmH3x9zQwdGkNsbBenzycrDQkh\nhIcVFBSxbdsVgoMHWh/T6XKZODGGbt26ykpDQgjRHhw6VD+QV7Bx4ybuvnuW0+eUYC6EEB5mMllC\nb2HhRd599ykeeaQ3u3Yt5/bb73L6nNJnLoQQHmYyVfHJJ8+xevVLDB8+g1/+MpMePQagafudPqcE\ncyGE8JDy8nIKCgrw9b3KzTd359lndxAWZhn0rK4+zqBBoU6fWwZAhRDCjQwGA+Xl5eTn51NRUYGf\nnx/BwcFcu3adEydKMRp98PMzExcXTmCgL4mJiU4NgErLXAgh3ODUqVO8+OKLfPbZZyxdupSIiAjC\nw8Ot26OiIomKiqxzTFlZmdPXkwFQIYRwoe3bt3PvvfcyYsQIiouL+eCDD4iJiSEwMNCt15WWuRBC\ntJKmaZSXl/PMM8/w2WefkZaWxh/+8Ic6LXF3kz5zIYRwktlspqSkhPz8fCorK6msrCQqKgo/P+fa\nyWVlZdJnLoQQnnLx4kV8fX3Jz8/HZDIRGBhIeHi4R1vi9UmfuRBCOEDTNL744gvuuusuhg0bxvHj\nxwkMDCQsLIyAgIC2vj0J5kII0ZTq6mrefvtt4uPjeeyxxxg5ciQbNmygW7du+Pr6tvXtWTndzaKU\negZ4EDADh4CHNU2rdtWNCSFEWzKZTBQXF/O73/2O7777jp/85CdMnToVHx/vbAM7NQCqlOoDbAYG\naZpWrZTKBNZpmvahzT4yACqEaHf0ej2FhYVcvnwZs9mMv78/QUFBHrl2WwyAlgIGIEQpZQJCgItO\nnksIIdqUpmls2bKFvn37UlhYiI+PD8HBwV7VjdIcp74vaJpWBLwInAMuASWapm1y5Y0JIYS7VVRU\n8NprrxEXF8ePf/xjzp07R1hYGKGhoe0qkIOTLXOlVD/gV0Af4DqwTCn1gKZp/7Hd79lnn7X+npyc\nTHJysrP3KYQQLnP+/HlefvllPvjgAwYPHszTTz/N+PHjUarFvRut9tVXX/H1118Dli4eZznbZ54C\nTNM07dGavxcCd2ia9lObfaTPXAjhVaqrq7l69SqvvPIKZ86c4eGHH+bWW29t69sCIC8vj48//phl\ny5Y51WfubDAfBvwHSASqgA+ArzVN+6fNPhLMhRBeobb0bFFRET4+PoSEhHhFVoper+eLL74gIyOD\nffv2WR/32ACopmkHlVIfAfuwpCbuB9525lxCCOEOpaWlfPTRRyQnJ6PT6fDz8yMsLKxNulLqu3Dh\nApmZmWRlZVFUVOSSczqdZ65p2j+Af7jkLoQQwkVOnjzJSy+9xKeffsptt93G8OHDiY6ObuvbwmQy\nsX37djIyMti+fTv1ey58fHwZOvRODh5c79T5pdCWEKJD2LNnD3/5y1/YsWMHM2fOZNGiRfTp06et\nb4vCwkKWL1/O0qVLuXTpkt327t27c8cddzJ69M8JCAjnv/+7vxTaEkLcWGpLz16+fJkdO3YwYMAA\n/vjHP7Zpwava+8rJySEjI4ONGzdiMBjs9klKSiItLY2JEyeyZ89lDIZYdDqd09eUYC6EaHdMJpO1\n9KxOp8Pf35977723zfvDy8rKWLlyJRkZGXz//fd22yMjI7nvvvtISUmhV69e1sd9fc00EO9bRIK5\nEB5UUFDEoUNXMJl88PU1M3RoDLGxXdr6ttqN3NxcXn/9dRYuXIifn5+19GxbO3r0KOnp6axZs6bB\n1vWIESNIS0vjrrvuanDFof79w8nJOQ70stvmKAnmQnhIQUER27ZdITh4oPWxbdtymTgRCehNqC09\n++KLL5KTk8Ps2bPx8fEhLCysTe+rqqqK9evXk5GRwcGDB+22h4SEcO+995KWlsaAAQOaPFdUVCSJ\niXDw4DGn70cGQIXwkE2bctHpBto9HhJynClTmv7PfiPSNI1Vq1bx+9//noqKCtLS0pg3bx6hoaFt\nel+nT58mIyOD7Oxsrl+/bre9f//+pKWlMWvWrBbfq6w0JEQ7YDI1PEnFaGz7vGdvUlt69tKlSxQW\nFvLEE08wZcoUl07yKSwsIS+v1Nrd1b9/OFFRkY3ubzAY2Lx5MxkZGezZs8duu7+/P9OnTyctLY0R\nI0a0Sd+9BHMhPMTX19zg435+8g0W7EvPBgUFkZSU5PLrFBaWkJNTTmDgIAAMBsjJOU5iInYBvaCg\ngKVLl7Js2TKuXLlid66oqG5MnDiL8eOnMWpUryY/ENxNgrkQHjJ0aAzbtuXW6TPX6XIZPTqmDe+q\nbdV2pbzxxhs89dRTdO7cmZCQELdWLMzLK7UG8lqBgQM4ceIYUVGRmM1m9uzZQ0ZGBps3b8ZkMtXZ\nVykfBg6cwE03jWXKlAeJjLT03Tf2geApEsyF8JDY2C5MnAiHDx/HaFT4+WmMHn1jZrNUVFTw7rvv\n8tprr6GU4oEHHiA2NrbBTA9Xa6y7q6SkjPfee4/MzEzOnj1rtz08PJqxY1NJSnqAgoJqDIbBFBSc\ntwZz2w+EtiDBXAgPio3tckMG71pGo5EPP/yQp556qs1Kz9rmdGuaxpkz37Jjx0d8880qDAb7ErSj\nR49m+PBpxMcvwc/PsnDz5cuWYF//g8FobLviXRLMhRBuV1VVRWFhIQUFBXTu3JmPPvqozUrP9u8f\nzs6d3/Ldd0fZseNjzp8/bLdPWFgYc+bMITU1lX79+rF79zmqqgKs2y0LrNmPg/j5NTwu4gkSzIUQ\nbmE2m6msrOTy5csUFxdbS88OGTLEI9dvKGOluPgq6enprFy5koqKCrtjhgwZQlpaGjNmzCAkJMT6\neO2knsBASwppjx6dOXp0C336JFj3qa4+TkJC201gkjxzIYRLlZaW8uabb/Kvf/2L119/nR49ehAc\nHOzRrpQfMlYGYDBU8+2369m27W1OnTpkt29gYCAzZ84kLS2NoUOHNnnOEydKMRp98PMz07UrXLuG\n9e+4uKbTG2vP0VRKZGvyzCWYCyFc4uTJk7z44oukp6dz2223sWjRIm6//fY2ybnevfscFy+GsnPn\nf9i1K4Py8mt2+/Tp04e0tDTmzJlDRESE2+/J9gOmVnX1cRITQ60BXSYNCSHajE6n46233uK5555j\n5syZZGRkWEvPtnRyTkvVP3+/fp04duwQ//zn+xw+/HUDNcN9mDp1Kvfff7/HP2iaS4lsLWmZCyFa\nzLb0bElJCWVlZYSFhdUpeuVIS7Q1bM9fVlbIrl0Z7Nz5IUVFl+32jYzsRlLSA0yePIoZM0a0+tot\nvc+8vFIOHryGpg3gpptCCA/vZN3u55fLyJFdMJlMBAUFkZCQIC1zIYR7lZSUYDKZ6pSerR/Ea7m7\nJXr8+HXOnStlx46fcuDAekwm+xqycXHjmDRpMUOHTsVoPEliovvruth+Wygvv05pqR/R0bdhNp/C\nYOjJiRMX6dfPyPnz3/DNN6t44IFUoqL607Vr1zqDri0lwVwI0ayjR4/ywgsvkJWVxYcffki/fv2a\nLT3beC2a1uVi19YMf++9T7h06Yzd9sDACMaPT2X48FlUVJRy662dCA094dAAZWvVLxVw6tQpKisj\nCAysoEePzuTkbOTkya/IzMygc+dokpLuYubMxDq1zZ0lwVwI0SBN09iwYQMvvvgi+/btY86cOWRn\nZ3PTTTc5dHxjCy40lovdXP/6sWPH+PTTT1m7di2VlZV2x3frNoTBg59k0KDbGDLkZuvjwcHHiIsL\nJy+vlGPHyt3Sd1+r/rcRTfPF3/8mzp07zfHj77F371IGDryLBx/8I/PmTSE+Ptplk8ikz1wIUYem\naZSVlfHqq6/y7rvvcv/99zNv3jw6derU/ME2WtJn3ti+CQl+fP31nkZrhgcEBDF69DwmTFhIaWkn\ndLpQ4uKC6vRJV1buw9c3zG1997Z27LiAwWC5jsFg4MiRk5hMgwkNLWLgwGCio28mICCwybLHSilJ\nTRRCOM+29Gx1dTVKKTp16uRQ6dnGWtX1c7Mb6+qwzLD8oUV75cppduz4mL17M6ioKLPbPy4ujtTU\nVMaNm0h+vhmj0Yfjx/OJikqsE8gBTp3ayi23JNudIzj4GGPG1O3eaG32zapVOeTmVjBkyOSaOjNm\nTp+uIDIygmHDLN8WdLpcJk5svCaPs8FculmE6KAcXaLuu+++o3Pnzly9etVaerYlS7E1V1LWkWBo\nMvlgMhk5dGgj27d/TG7uDrt9/Pz8GTUqiYULU5g8eaI1rbAmC5JBg0LJybkA1G2Bd+/e8HOp33ff\nktK4tqqrq/n888/Jzs7m8OHDjBo1nenTHyIwMBClFP7+e+nSpZKAgEq3FleTYC5EB9TcEnWaprFy\n5Upeeukljh49yttvv83AgQOdKj3b2qyVgoIC1qz5kG3bNlJSYp9W2KVLNyZMeJgxYxYQFhZFdfVx\nrl27bnfu2qXXTpw4Zv0mkJAQTl6emaoq++vW77tv6fPQ6/U8//zzrFq1isGDB/Pwww+TlpZGRYWe\nw4fPWitjzp7d3yPF1SSYC9FG3Lm486FDdQM5QHDwQPbtO8D333/Ma6+9ho+PDw888ABvvPFGq0rP\nOpO1Yjab2bt3L+np6Y3UDFcMGnQ748ZNYdiwx/Dx+eFDpqkA29g3Adu6KtBwHRVHnofJZKKqqgqT\nyURISAiTJk3iD3/4A3FxcdZ9QkPbZk1XCeZCtAF3L+5cPzCZTCbKysr48stPOXlyL8888wxJSUku\nmQHZkqyVkpISVqxYQUZGRiM1wyMZN+5uJk+ewZgxcRw7Vo7BYP9toSXpjY212OsH/caeh1IGLl68\nSFhYGL6+vkRHR1tzwj1VNMwREsyFaAP1W87FxUWcOQOnTx9g5MgerW6l15Zm1ev1lJaWUlJSgqaZ\nGT9+Cs8882hrb7+O+hUFoW7LV9M0vvvuO9LT01m/fj3V1dV250hMTCQtLY2pU6cSEPBDqVlf39IW\npTc2xpG++/rP4+LF42zf/iaHD29l7tw5vPTSS4SFhbl0LVJXkmAuRBuwbTkXFxdx5MgVAgIGomlh\n6HQ9WtVKNxqNnDq1i9LSM/j43IJSPgQGBqLX5zFwYGdXPg2g8ZZvSEgAy5YtIz09naNHj9odFxoa\naq0Z3lht8+Y+KFz9POLjdbz//l/ZvftLiouv8qMfzeX11zczbNgwl1/P1SSYC9EGbBc1OHPGEsgt\nj1vSeYODB3L48PEWBfPa0rNvvvkm4eHhPPXU7zGbfa0Bdtiwlk+UcTRVz7bl+/333/PWW6+zcuVK\nysvL7fYdPHgwaWlp3HFHEufPG8jP9+HKlXMNntvRLpLWqq6uRq/XExISgE6Xz/PP/5nZs2fj7+/v\n0uu4k+SZC9EGbPvM9+/Pw2jsj15/gfj4COuakgEBedx1V/9mz3X69Gn+8Y9/kJ6ezsiRI1m8eDGJ\niYmt7g9vatIPUCfI9+0bzP79X5Oens6+ffvszhUYGMiMGTNITU0lISGBa9euu7UIlyOMRiNVVVVo\nmkZoaCgxMTFERES4dTFpR0ieuRDtiO3izgEB5/D1DaF//x8COYCfX9ONIZ1Ox9WrV1m3bh2lpaUs\nXbqU3r17u+weG0vV27fvazQtgsDAQVy7dqGmZvgnlJeX2J2jd+/e1prhkZE/BGl3F+FqTEVFBWvX\nrmXlypXce++9PPbYY3Tu3JmgoCC3XdNTnA7mSqlI4B1gCKABSzRN2+uqGxOio6td3Dk+Prqmlf5D\nPRGdLpfRo2PsjqlfetbX15fJkyczdepUl99fY6l6p05VYjSWs3373zhyZDOaVncwsvaeLF0pdzQ4\nYOiuIlwN0TSNffv2kZWVxebNmxkxYgS/+MUvWLBgQYcI4rVa0zJ/FVinado8pZQf0LLCDUK0M+7K\nC7dtpddONKk/S/DatWu88cYbTJo0ieDgYGvpWXcurlA/Va+srJDduzPZuvVdrl+/ard/ZGQUDz6Y\nyvz584mNjW3RuWu5ckFkk8mETqcjJyeHv//97yxcuJBXXnnFpd9evIlTfeZKqQjggKZptzSxj/SZ\niw6jobzw5mpsuMKRI0espWfHjRvHr3/9a5eUS3VEYWEJX39dxoULpezY8TEHDqzDaNTb7Tdw4Hgm\nTFjI6NE9SUrq6/C53dFnrmkaVVVVGAwG/Pz8iImJoXPnzh5fg7Q1PN1n3he4qpR6HxgGfAP8UtM0\n+7qUQnQAjc2obGnGiaNycnL4/e9/by09u3LlSodLz7pCeXk5X3yxjk8++Q+nTp202x4SEsaYMWmM\nH/8gMTF9qa4+zsCBji/84OoslUOHDpGVlcXixYvp168fMTExhIaGem1OuDs4G8z9gNuAn2malqOU\negX4HfBHl92ZEF6k8T5e17X2akvP5ufnc+LECRITE/n73//e4tKzrZGbm0t6ejqrV69usGb4sGHD\nSEtLIzHxDs6d02M06vHzO+ZUIHa0CFdjrl27RnZ2NitXrqSsrIy0tDQSEhLo3r270+dsz5wN5heA\nC5qm5dT8vRxLMK/j2Weftf6enJxMcnKyk5cTom3Z5oXbai7jxBH1S88GBAQwcuRIRo4c2epzO+Li\nxQLS09eyefNqTp06Zrc9JCSEe+65h9TUVAYPHmx9vEcPj9xeHZqmUV1dzdKlS3nttdeYOnUqL774\nIjNmzHC6Fe7OGjmO2Lp1K1u3bm31eZzOM1dKbQce1TQtTyn1LBCsadrTNtulz1x0GO7oMz9w4ADP\nP/88KSkp9OjRg6CgII9OUjl79iwffPARq1atpqKi1G57bc3we++9l7CwsAbO4DkGg4GqmtKH4eHh\nmM1ma42U1mirsZCmtEWe+c+B/yilAoCTwMOtOJcQXs2RjBNH1C89O3/+fKKjoz0WLI1GI1u3biU9\nPZ1du3bZbff19WfEiLuZOnUCDz00s00HDcvKytixYwdJSUkEBgbSs2dPIiMjW1XhsT5XjYW0dese\nWhHMNU07CCS68F6E8Gq1eeHOMJvNbNq0iSeeeAJfX18efPDBVpeebYmCggKWL1/OsmXLuHy5oZrh\nN5OU9ABjx6YQHh6Nv//xNgnkZrOZ3bt389lnn7F9+3bGjRvH4sWLiYyMdMv9uGIsxN0VMB0lM0CF\ncCOj0UhRURH5+fno9XqXlp5tjqZp1prhX375ZYM1w4cOHc24cU8wZEhynZrhrsz3doTRaOTDDz/k\n008/pVOnTixatIh33nnH7YOZzY2FONLi9nSmU2MkmAvhBlVVVRQWFlJQUICmaQQHBxMXF1dnEQN3\nuX79OtnZ2aSnp3PmzBm77V27duW+++6rmQEZSk5OeZ1A7q6qhPWZzWaqqqowGo34+/szaNAgMjMz\nGTt2rMe+FQwdGsO2bbl2feajR8c43OL2RKaTIySYC+EiRqORZcuW8fLLL/OTn/yEYcOGERIS4lSW\nRUsXFtY0jUOHDpGens66desarBk+atQo0tLSmDZtWp2a4Z6oSmh7n1euXLFO4unatStRUVGEhoYy\nfPhwh87hyv7ppsZCNm3KdajF7c5Mp5aQYC5EK12/fp0333yTt956i/DwcB588EESExPrBMyWaMnC\nwpWVlaxdu7bJmuGzZ88mJSWF/v0brsDoaL53a1auv3z5Mp999hmrV6+mb9++ZGZmEhER0eLsHXf0\nTzc2FuJoi7up1r0nSTAXwkkGg4FVq1bxyCOPMHLkSP7nf/7HJaVnHakoePLkSdLT060TZuobPHgw\nqampzJw50yWTjpxZud5kMrFhwwZWrFjBgQMHmDFjBm+//TZTpkxx+jXyZP+0oy1uV2U6tZYEcyFa\nqLb07JUrV+jatavLS8821iKsqjKxfv160tPT+frrr+22BwQEcPfdd3P//feTkJDg0n7nlpSsNRgM\n6HQ6ALZt20ZKSgpr1qwhPNzxfvjGulI82T/dkhZ3azKdXEWCuRAO0Ov16HQ6rly5Yi0926lTJ7fk\nh9evKFhUdJGdO//D7t2fUFpabLd/7969SUlJYe7cuXTu7Ppl4aD5krVms5nKykrMZjNBQUH07t2b\nyMhIsrOzW3ytprpSPNk/7S0tbkfJSkNCNKGwsJDXX3+df/3rXzz33HPcfvvtBAUFuTXborCwhK++\nKuXUqcts3/4Rhw83XjM8NTWVMWPGuL2g1O7d56iqqtsyN5tNHD/+Ibm5OxkwYABPPfUUXbp0ISQk\npFWvz6ZNueh0A+0eDwk5blP73XtmbLqarDQkhAvZlp5NSkri1VdfdTjbojWKiopYsSKLTz9NJz//\nkt32mJg/OOwQAAAgAElEQVQY5s+fz4IFC5qtGe5KtgsrX778Pbt2ZZKTs4zu3aN59NFHWLx4MVFR\nUUDrs02a6kppb61lT5JgLoSNyspKVqxYwc9//nPmzJnDqlWr3D5xRdM09u/fT3p6Ohs2bMDQwKoN\nY8eOJTU1lUmTJrXJIsNduoQzeHAle/eu4+WXn2bChLtYtmwpd945uc5+rsg2aa4rxRv6p72RdLOI\nG15t6dlLly5RVlaG2WzG39+/ySyQ1qTp1SovL2fVqlWkp6dz4sQJu+0RERHMnTuXO++cQVVVZKuu\n5azq6mqqq6vx8fGx5oQHBgY2+oHSVBfJlCkDGjjCnjcWv/Ik6WYRooUuX76MwWCguLjYWnrWkYwL\nZ9L0bDVXMzwhIYHU1FRmzJhBeXlVnRV5WnotZ5w/f56srCySk5NJSEigR48eRERE4OfXfLhwRbaJ\ndKU4R4K56JCa6rfdv38/L7zwAmvWrOH5559n3LhxLUqbc2Zl+erqajZs2EB6ejoHDhyw2x4cHGyt\nGT5kyBDr4/v3X/HIKvZVVVWsX7+e7Oxsjh07xuzZs0lISGDQoEHNH2zDVdkm0pXSchLMhddp7QBa\nQ1/Tt2w5ik63hvfe+zfHjh1j/vz5rFu3jujo6BbfX0tWlj937hyZmZlkZWVRUlJit/3WW28lJSWF\nOXPmNJjm6O5V7PV6PVu2bOGPf/wj8fHxPP7446SkpDg90chbZkPeiCSYC6/iigE021mCtfnPX311\niOXL/8Tjjz/MP//5z1aVnm1uZXmj0ci2bdtIT09n586ddvv5+/szbdo00tLSGDVqVJNpfO5Yxd5k\nMlFVVYXJZCIkJITp06czc+ZM+vXr5/Q5azXXReINdb87KhkAFV7FFQNoGzbkodP1o6ysjOLiYoxG\nA76+foSEnGLChJ6tvsfGVpbv27eKzZu/YOnSpQ3WDL/ppptYsGAB8+bNs6bxOXutlq5ir9fr2bZt\nG6NHj8bf35/o6GhrTrin3OgDm46SAVDR7jTUSmvtANqePXs4c+YqlZU+aJpGYGAA/v6WgOXv75rG\nhe3K8gaD4sSJ/eTkbGDnzu0YjcY6+yqlmDBhAqmpqUyYMAFfX99Gztr8tZypanjs2DGWL1/O+vXr\n6dOnD3fffTd9+/Ztk1XrvaXud0clwVy0ica6U6CU4GD7/ZsaQLMtPXvu3Dmefvr/oGkhdc7t6hrd\n/v6KvLwtZGRkcPr0abvtXbp04b777iMlJYWbb765Vddq6Sr2ZrOZtWvX8v7771NYWEhqairbtm0j\nPj6+VffRWt5S97ujkmAu2kRjrbTq6q/Q6RwbQLMtPRsREcGDDz7IjBkzCAgIoLCwxC01um1rhtcu\nMGxr1KhRpKamcueddzpdAtcZtavW6/V6fHx8iI2N5c9//jOzZs1yKKXQE7yl7ndHJX3mok1s2JCH\nXm9fXzsgII/hw6M4fPiqdQAtPj66ztdwg8FAUVERW7Zs4Z133mHx4sUkJrpvOVqdTmetGX7kyBG7\n7Z06dWL27NmkpqY2WjPcXYqLi/H398dsNhMeHk5MTAzh4eEt7s7xBOkzd4yzfeYSzG9wbZVd4MxA\np23pWbDkZruz1Xnq1CnS09PJzs5usGb4oEGDSE1N5Z577nFJzXBHlZeXs3btWut9bd++nS5dunhs\ncejWKCgoavKDWkgwF05oy5aSo9fW6/V88skn9O7d29riDA4OdtsAnsFg4MsvvyQ9PZ2vvvrKbntt\nzfDU1FSGDx/u0RXsv/rqK7KystiyZQuJiYksWbKEefPmtYsgLhwn2Syixdoyu6C5fOTa0rNvv/02\nN910E0899RQ9evRwW/DMz89n6dKlLF++nKtXr9pt79WrFykpKfzoRz9qUc3w1tZwMZlM6HQ6NE1j\nzZo1DB8+nDfeeIOePVufYik6FmmZ38Ca6re+6y7P9v3WOnPmDM899xyfffYZ48aN46GHHnJb6Vmz\n2cyuXbtIT09n69atmM11B+h8fHysNcPHjh3b4m8DzuaIa5pGVVUVBoMBf39/YmJi6Ny5M8ENpfm4\nmEzqaXvSMhct5k3ZBZWVlVy5coXDhw/j4+PDypUr3VZ6tri4mKysLDIzMzl//rzd9ujoaGvN8G7d\nujV7vsZa3y2p4aJpGgcPHuSzzz4jICCAZ599lujoaEJDQz2WE+6OxZKF50jL/AbW1tkFmqZRWlpK\nfn4+ZWVlTvWHO9qNoWkaBw4cID09nc8//7zBmuFjxowhNTWVyZMnO1wzvKnW97Fj5RgM9oO5/v7H\nGT/+5prjC1mxYgUrV65Ep9PxwAMP8OijjxIXF+foS+Ayrph9K1pPWuaixdqq1Gh+fj6vvvoqQ4cO\npX///g6Xnq3PkVK05eXlrF69mvT0dPLy8uzOERERwZw5c0hNTaVv374tvoemWt++vjRaV6Wqqorr\n168zd+5cJk6cyGuvvcZdd93VJjMza8mknvZNgvkNzpOlRvfv38/zzz/P2rVrmTx5MhMnTnQqiNdq\nKpBeu1ZARkYGK1eubLRmeEpKCjNmzGhVX3RTVQ0HDQq1LrVm2ddEWdlhbrklmJCQEPr06cOFCxc8\n0hduq7F+cW/qdhMtJ8G8CTIY5BqHDh3iySefJDc3l3nz5jldera++oHUYKjiwIH17Nz5L77/3n5y\nT1BQkLVmuKumtjdV1TAqKpIBA0r55JO/Eh3diyFDhjJxYj8GDLilVbNDbd+XpaVFaJoPERGRDr1H\nm+oXl/K17Zv0mTeirfuT2zuz2WztD8/Pz2fnzp3MmTPHpTnRtSvGFxaeZceO/7B7dwYVFcV2+/Xr\n189aM7w13wQa0lCfuU53DE07wqZNG9i5cyfjx4/nmWeeISkpqdWplbbvy+LiIo4cuQKEEh8fgaYZ\nyMvbR3x8F6KiQhsM7M31i8uknrYnk4ZcTAaDnGM0GikqKiI/Px+9Xk9gYKBbJrWYTCZWr17LBx8s\n4/jxfdR/r/n6+pOQMI6HH57PtGmT3Tq5x1IHphS9XuPs2WO8885f6dKlM4sWLWLJkiXExsa67Fq2\n78sDB3IxGCy/6/WHAH8CAgYSGHiBYcNubrDx4Y3pqKIuGQB1MRkMapk9e/ZYl2CbOHEiwcHBBAUF\nufw6V69eJSsri6VLl3Lp0iW77ZGRNzF+/AOMG5dGeHg0wcHH3BrIzWYzISEBDBkSSUBAAFOm9GPW\nrNu544473HI92/elpv3we35+Cb17j6/Zx/J8G5oAJv3iHVergrlSyhfYB1zQNG2Wa27JO8ibvnlG\no5GlS5fy8ssvc/78eVJSUhg3blyDy5+1hqZpfPXVV2RkZLBp06YGa4YPGZJIUtJPiI+fjI/PD0Wm\nXLW8Wv37ycnJoW/fvgQFBVlXrQ8NDUUp5ZIVexpj+75UyvZ3H5t9fniP1m98SL94x9XalvkvgaOA\na//3NsFTg5Lypm+c2WwmJyeHefPmERkZycKFC5kxY4bDudmOKi0tJTs7m4yMDE6dOmW3vXPnzsyb\nN48FCxZw/rxGVZX94sOtWV6tvvz8fLKysli9ejUAn376KcOHD/doiVnb92WfPjEcOZILhNKtm+Vb\nkF5/gf79I6z71298tFU6qnA/p/vMlVI3Ax8A/wP8un7L3B195p4elPTkYFB7yJwxGAxcu3aNy5cv\nU1lZyalTp9xSevbQoUNkZGSwdu3aBmuGjxw5ktTUVO666y5rVoirllerT9M09u7dyzvvvMN3333H\nzJkzeeyxx5g0aZJHi2zZsn1flpUVAz4YjRpHjpTRv/9oIiMtbSvb/xvt4f0lLDw+AKqUWgb8BQgH\nfuOJYN5RByW9OXNG0zQqKyu5du2aW0vP6nQ61q1bR3p6OocPH7bbXlszPCUlhQEDGv63rh2IrF2Q\nIi7O+QUpDAaD9YPk5MmTlJSUcP/997u8C8mVGmt8ePP7S9jz6ACoUuoe4IqmaQeUUsmN7ffss89a\nf09OTiY5udFdHdJRByW9cW3E2tKzr7zyCnPnzmX27Nl06tTJ5TMUT506RWZmJitWrKC0tNRu+4AB\nA0hLS+Oee+4hNDS0yXO1dHm1+ioqKgBLpkxwcDC9evWic+fOjBo1yulzelJjE8C88f0lfrB161a2\nbt3a6vM427waC9yrlJoBBAHhSqmPNE1bZLuTbTB3hY46KOlNH1K1pWf/9a9/cfPNN/PII48wderU\nFrXEm6uXUlszPCMjg71799od7+/vb60ZPmLECLd2ZxgMBrZu3cqKFSs4ePAge/bsoUePHh5dtd7d\nvOn9JezVb+g+99xzTp3HqWCuadrvgd8DKKUmYulmWdT0Ua3XUQclveFDSq/X8/XXXzNz5kySkpJ4\n7bXXGDZsWIvPU79eyrVrxXz99SHi4kLRtHIOH/6StWtXN1gzvGfPnqSmpra4ZrgzTpw4wbJly1i/\nfj3du3fnoYceYunSpXTt2tWt120L3vD+Eu7nqo5Pj7wrOupIfFt+SNWWni0sLCQoKIhVq1Y5VPa1\nMbb1UkpLi8nLK6agwJ8vvniZ06e3o2n2NcMnTZpEamoq48aNc2uhKbPZjE6nw2QysXz5cjp16sTG\njRud+tBqircNNnbURpCoS2aAeglPZs5UVVVx7do1ysrKnC4925gdOy5gMAygvLyIlSv/l0OH1lNa\nesZuv9qa4fPnz3db3fJa1dXVVFdX4+PjQ1RUFF27dqVTp05u6b7x1sFGmabffsh0ftGs/Px8Xn75\nZd577z1+9rOfMXfuXJfO0tQ0jY8/3sCmTTvYv38NRmO13T4DBoxj0qQp/PSn812el27r3LlzLF++\nnCtXrvDXv/6VmJgYIiIi3L5qfUfNuBKeI9P5RaNf77/55huef/551q1bx+TJk3n33XcZONA+4Dir\noqKC1atXk5GRQW5urt32gIAwEhN/xNSpDxMb24/g4GNuCeSVlZWsX7+e7OxsTpw4wZw5c/jtb3/r\n0ufaHBlsFG1FgnkH0dDX+w0bviU0dCc//vEjrS49Wz9DJSoKvv32NJs3r2Hv3i+pqrKvGX7zzbcS\nFzeVSZN+TFRUFGCZyJOQ4NrKhXq9Hp1Ox4IFC+jduzdPPvkkKSkpHq8TDjLYKNqOdLO4mTODYc4c\nU/v13mw2U1lZSXFxMVVVOjp1ymPcuD6tagnbzq40GKrZs2cZmzd/yJUr9q3woKAgZs6cSWpqKkOH\nDnXpRB5btavWm81mOnXqRGxsLH5+fkRERDR/sBt5a5+5aD+kz9wLOfMf29lg8NFHWygp6QYEYTQa\n8PPzx9/fv856k87avfscFy50YufO/7B7dybl5dfs9omNvZXJk6fxq18tdnlArf1WUFVl5ODBnfTs\nGcqMGdOJiYmhS5cuDrXAPZlhIoONojWkz9wLOTPzrqXH7Nq1ixdeeIEvvtjEfff9mdtvn4O//w8T\nXlpTaKqg4BpZWV+yatVnnDlzkPoZqD4+fgwfPp0JExYRF3cHAQF5bgnkWVkH+Oabvezfv4bu3eOY\nOTOVbt160r17lIPPw7OrzntyKT4hakkwdyNnBsMcOcZoNJKZmckrr7zChQsXSElJYdmyLPLyfOuU\nf3W2f/rq1at89NEnLF++guLiK3bbQ0NjGDRoCcOGTeK22wZbH2/NB0f9Pvlbbw2lsrKUxx57krIy\nHRMmPMDf/raDXr0sOexHjx53OJi35APS23LEhXCUBHM3cmYwrKljzGYzeXmnWbVqN//619+YPPke\nnn9+Ft27WwY1IyJKOHHimLV/OiHB8f5pTdP4+uuvyczMZOPGjRjsFrZU9Ow5ieHDZzFmTDK5uSe4\n9dbe1q2tGdi0nTVqMBgwGg3s2vU9U6f24NFHn2bo0CV25QRakh3i6Ieqp1vwQrjSDR/M3dkSc2bm\nXUPHlJcfpk8fXzZv3kFOThmhoeP5zW8mAfDtt8fx9y+xFplq6eBibc3wzMxMTp48abc9NLQLY8ak\nMHz4LKqrQ1HqIt27XyU+PpJr18459cFR39athzCbEzCbKwkJ6UR0dDTBwf24fv17xo6dgE5n/zZt\nSXaIox+qUpBKtGc3dDB3d0vMmfIDtcccOpTLN998DZgYPrw31dXhnDlTSWTk8Dr7BwYO4MSJYy0O\npEeOHCEjI4M1a9ag0+nstt966xCSkn7MiBEz8Pf/YQ3P4OAqxozp1aJrNaSsrIzVq1ezcuVKTp06\ny09/+gFDhoyok3VjNCqGD49u9VR0Rz9UJUdctGc3dDD3REuspYNher2eNWtW8Oqrr1JcXMxvf/tb\nevXqXjPV/nqDxzi6NFpVVRXr1q0jIyOD7777zm57SEgIs2fPJjU1la5dY8nJKa8TyF2RI378+HH+\n/e9/s23bNm6//XaefvppIiOHYDQm2O3r56e5pB6Po+eQHHHRnt3QwdybWmLXr1/npZdeqlN6dtq0\naXWmn/v6mrHryqb5gcfTp0+TkZFBdnY216/bfyD079+ftLQ0Zs2aVadmeGIiTvfB2zIajVRVVWE2\nm2vOm8j//u//0qNHD6D2G1LjLWdXZIc4cg4pSCXasxs6z9wb6mjo9XquXbtGXl4eL730Eg888ECj\nVfxasjSawWBg8+bNZGRksGfPHrtzubtmeHV1NWazGYPBgL+/vzUnvLFaMN6Sm+0t9yFuXDJpyAlt\nOVvPtvSsUorg4GCHikDZzqisqLiOpilCQ8Oti0AYjVUsXbqUZcuWebxmuKZpHDhwgKysLDZt2sSa\nNWtISEggNDTUraVthehIJJg7yZMtMZ1Ox3vvvUdISAjx8fEOl55taOUewNpKN5vN5ObuYNu2tzh6\ndC8mk6nO8T4+PiQnJ5OWluaWmuFXrlxhxYoVrFq1iurqah588EEeffRR+vXr59LruIvklgtvIsHc\ni9mWno2Li+PJJ59k9OjRDh3bWNcKlGIw3MqePZns3Pkfrl49Y3dsdHQ08+bNY/78+dx0000uejYW\nmqZRVVWFwWDg448/Jj8/n0cffZRp06a1q1a41FIR3kaCuRfKz8/nv/7rv1i3bh1Tpkxh8eLFLS7H\nunv3OaqqBln/1jSNM2cOsHbtC+Tlfd1gzfDbb7+dtLQ0pkyZ4vJSs7Wr1muaRmRkJDExMYSFhbW7\nAF7bEv/22zPcdNMYIiPD6uwTEnKc+PhoabELj5PaLF6koqKCgoICrly5Qrdu3Vi/fr21BGxL1Wbc\nVFVVsG9fNtu3f8yFC0fs9gsODueOO+YzbdoYfvSjpFbdf30lJSVkZ2ezf/9+nn/+eXr16kVkZCQB\nAQEuvY4n1G+JV1XB4cPXiY+nTkC/evU627ZpMhtUtBsSzF3EbDZTWlrKpUuXqKiowM/Pj8jISJ54\n4olWnTc//yRffvkxX32VRVVVud32Xr0SmDBhIaNGzUbTzpGYGNrAWVrOaDSyY8cOVqxYwe7du5k4\ncSJPPPEE8fHx7aoVXl/9uQVKmQkIuJmzZy/UCebnzl1n0KC6XWEyG1R4MwnmrXTmzBleeukloqOj\nmT59OoGBgYSHt25ijV6v54svviAjI4N9+/bZbff3D+TOO+9k7twf4evboyYP/IxLaoXX5oT/7Gc/\no6ysjEWLFvHxxx8TE9Mxcq3rzy3o0yeGI0dy8fP7IZDrdLn06tVwpo/MBhXeSoK5k3bu3MmLL77I\n5s2bufvuu7n77rtbHcQvXLhAZmYmWVlZFBUV2W3v1q0nkybdw8KFc7nlltZPqa9lNpupqqrCaDQS\nEBBAjx49yM7OJjY21mXXAO/IGqk/y7Nz5y4MGQIFBd8QEFBhnR166BA0UOVAZoMKryUDoC2gaRpn\nz57lvvvu49KlS6SkpJCWlkZkpPOtYZPJxPbt28nIyGD79u3Uf838/PyYMmUKaWlp3H777S6b3KNp\nGnv37qWwsJBJkybRpUsXoqOjO/yq9Y7eh7fcr7jxSDaLG5nNZkpKSsjPz6eiooK9e/cyefLkVi7F\nVsjy5ctZunQply5dstverVs3FixYwLx581zaxXHx4kWysrJYs2YNfn5+/OIXv+CnP/2pXYlZV/OG\n2ba1HJ1bILNBRVuQYO4Ger2eoqIi8vPzMRqNBAUFtSqDQ9M0cnJyyMjIaKRmOCQlJZGWlsbEiRNd\nFmA1TaO0tJRf/epXHDlyhFmzZvHYY48xYcIEt7TCG7JhQx56fX+7xwMC8rjrLvvHhbhRSWqii2ia\nxubNm3nhhRfo27cvS5YsITg4mJCQkOYPbkRZWRkrV64kIyOD77//3m57aGg49947i8WLH6JXL9f1\nhev1eqqrLXnoXbt25de//jXTp0+vU0zLU6QioRDuJcG8hl6v5+OPP+aVV17h+vXrpKWlMX/+fMLC\nwpo/uBFHjx4lPT290ZrhffuOZMKEhdx220zM5rOEhLQ+yF69epWKigq6dOlCSEgIffr0ISIiAn9/\n/zadXi8VCYVwrxu+m8VkMnH27FnGjh1LbGw3xo27l+HDx+PvD/37tzzVr6qqivXr15ORkcHBgwft\ntoeEhDB69CTGjv0FN988uM624OBjTi38UFshccWKFezbt4/nnnuOH/1oAd9/X+5VsxelD1qI5kmf\neQvVlp7Nz8/HZDJx/PhJCgujHSov25AzZ86QkZHBihUrmq0ZfuBACQaD/aCfv/9xxo+/2eHnkJ+f\nz3vvvce6devo1asXixcvZuHChej1mmRiCNFO3ZB95i3NW9Y0jWvXrlFeXm5XetZg6FonkEPzS7IZ\nDAa2bNlCRkYGu3fvttvu7+/P9OnTSUtLq1Mz3Ne3yKlFJsCSWaPT6TCZTJhMJsLDw9m8eTMJCT+s\n1LNpU66sZSnEDabdBvOWrN9ZW3r29ddfJykpiSeffJJOnTrVmZbe+KpD9o8XFBRYa4ZfuXLFbntU\nVDcmTLiHCRPuZNSoXnYfBv37h5OTc9zuW0BjS7KZzWaqq6sxGo0opYiKiiIqKoqQkBCmTJlit783\nraAkhPCMdhvMHVm/89KlS7z88su8//779O/fn1/+8pdMmjSpwXS85pZkM5vN7N27l/T0dDZv3txg\nzfAxY8YyZMgMEhIesH5Q5OQcJzGROgE9KirSoSXZzpw5Y80Jf/HFF7nrrruIiIhodhGLhjJHiouL\nuHz5rHV7Y99ivGGWphCi5dptn3lTecvJyb05c+YMY8eOZeLEiSxevJgBA5qemNJY3fABA0xs22ZZ\nfu3s2bN2x0VFRTFv3jwWLFjAmTPGOuVqa7VkYLOiooK1a9fWrFp/irlz5/LYY49xxx13OHQ82H9r\nKS4u4sCBA9x222hrMSmZ9SiEd/LoAKhSqifwERADaMDbmqa9Vm8ftwbzhmYU6nQ69Pq9DBwYZm19\ntySnunZJNoNBce7cUb75ZgObN39pzdW2NXr0aGvN8NqJRDt2XHB6YLM2J3zVqlXs2LGDJUuWMH/+\n/EbXzGyObebIwYNn6d79jgZrdtvOvvSmWZpC3Kg8PQBqAP5L07RvlVKhwDdKqY2aph1z8nx1OPJV\nvzZvWdN6cPXqJZQKprT0O0aNCiU0NNSpmY0hIQGcP7+XjIwMjh49arc9LCyMOXPmkJqa2mDOdnNd\nNfWZTCZ0Oh1ms5lOnTrRt29f/vjHP7pk5mf91ej1evt8+fp96NLXLkT75VTU0DTtMnC55vdypdQx\n4Cag1cHc0YFNna6UDRteJDNzKZMmzebee1OZMCHaqRKwJ06cICMjg5UrV1Jebl8zfPDgwdx///3M\nmDGjyZmgjgxsVldXs2HDBjZu3Mif//xnevToQZcuXQgODm7xfTvK0dmXMktTiPar1U1ApVQfYATw\nVWvPBc0PbO7cuZMXXniBLVu2cPfdd7NsWQa33HJLi6+j1+vZuHEj6enpDdYMDwwMZMaMGdx///0M\nHTrUoXM2NbB56NAhli9fzoYNGxgwYAAPP/wwCQkJTnejtISjsy+dnaUpg6ZCtL1WDYDWdLFsBf6s\naVp2vW3an/70J+vfycnJJCcnN3qu2oDw1VcXMZsH0KdPhLWPV9M0TKZv6dfPl/vuu4977rmHtLQ0\nIiIiWnzPFy5cYOnSpWRlZXHt2jW77X369CE1NZU5c+a0qrQtWLpRqqqq+Nvf/sbOnTu5//77efzx\nx+nf3/OFpdxVKVAGTYVona1bt7J161br388995xnZ4AqpfyBNcB6TdNeaWC7wwOgtgHhwIFcDIaB\n6PUXGDw4HH9/RXFxEUp9y9ixvQkMDGzxsmUmk4kdO3aQnp7eYM1wX19fa83wO+64o1WVBDVNo7q6\nGr1ej6+vL9HR0ZjNZnr27Nmul1trjAyaCuFaHh0AVZZo9y5wtKFA3lK2XSt9+sSwY8fnVFaGUl4e\nQL9+kZjNpxkzpluL+5WvXbtmrRl+8eJFu+2xsbHWmuGtXVUnLy+Pw4cPM23aNMLDw+nduzdhYWHN\n5oS3dzJoKoR3cLbPfBzwIPCdUupAzWPPaJr2uTMnM5l80DSNgwe3kJ39EseO7SQx8WGiohLp0iWa\nuLhIhwc2NU1j3759pKenN1ozfPTo21m0aCHJyckOZ44UFpaQl1dq7Rfu3z+cgAAfVq1axcqVK8nP\nz2fRokUkJCS0y1XrnSWDpkJ4B7dOGrp8+VqzA2MGg4Gnn/4Hn322jIqKEiZOXMzYsakEB4e2aLJN\nbc3wzMxMTpw4Ybe9U6dIxoxJISnpASIi9A4X0AL7CUV6vZ7//OdJjh7dSVJSEkuWLGHOnDk3VBCv\nJX3mQriWV1ZNzMw81uh/cpPJRElJCWfPnuXXv/5v+vSZSGLiEmu/sqMVC48dO2atGV5ZWWm3vV+/\nwSQlPc5tt83E3/+HzJGWfFDs3n2Oysr+VFfrAY3g4BBOndpDYmI3FiwY79A5vImrs0+ktK0QruOV\nwXzVKvtz+/sfYtiwKGvp2eDgYPz9/a2zL2tT+uLiLCl9DXVvhIYG8fnnn5Oent5ozfBZs2aRlpbG\n1auhTs/KrKio4MqVK+Tl6dG0eCIjIwkNDbW2wNvjkmftvSUtaZCio/PqEriWfuz1FBdfo3//SKKj\n9RbUg5AAAAsVSURBVNbSs7Wiouz7xX/o3rDUO7l48TQfffQi+/dvoLS01O46cXFxpKamcu+991pX\nCCoqOteiWZmapvHNN9+QlZXFl19+yZIlS5g06UGgr12WS3vsF3akQJm3akmlTCFuNG4N5tXVOjZu\nfJ81a17DbDYzffovCQ2NdbheSl5eKX5+cXz77Xq2b/+Y3Nwddvv4+/tz5513kpaWxsiRI+0CrqPl\nZktLS/nkk09YvXo1JpOJhQsX8tJLL9GnT5+aIHK8Qyx51p6zT9rzB5EQ7ubWYL5wYTduvnkos2f/\nnvj4Sej1efTvbwnkDXWf2LbMCwoKWLHiE3bs+IKSkst25+7RowcpKSncd999dO3atdF7aGpWpqZp\nVFVVYTAYMBqNFBUV8e9//5vJkyfX+VCIje3CxIlw+PBxa7/w6NHt8+t9e84+ac8fREK4m1v7zH/5\ny8/Q66u49dZOdOkSXKcfvKFysyNHhvD997mN1gxXSjFkyBSmTk3mscfm2uVwN/cBUUuv11NVVYVS\nisjISKKjowkLC+uQk3rqa8995jJBSdwIvHIA9M03zwP2mSO7d5+rU/e7oqKYvXuXs2vXe1y+fMHu\nXGFhUYwda0krDA2tbDDLpbEPiNp9i4qKyM7OZtWqVTz00EMsWbKEyMjIGzadsD1mn7TnDyIhHOXV\nA6D1l16rnSR05sy37NjxEd98sxqDwb5m+KhRo5g1azY33XQbEIifX7m1dV9fXl6pdaC0lr//rWRm\nfsixYzvYu3cvkydP5u9//zszZsxwSZnZ9qp+edz2oiN1dwnhah6JaLaZI5WVlezatZYvv/wV588f\ntts3NDSU2bNnk5qaSlxcnMPXsO1PNZtNVFfryc3dzsaNn/Kznz1Geno6UVFRrXsios211w8iIdzN\n7cG8NnPk+++/t9YMLysrs9vv5pvjeOCBeaSkzG+yZnhjlDJSXV2N2WzCz8+f6OgoevdeSEpKkvSn\nCiE6PLcGc3//77h69QD/9V8rycnJaWB7AImJk5gyZSZ33plIdHTnFp1f0zR2795NdnY2Cxc+jE53\nkZiYRIKCglBKodPlEh/f/tIHhRCipdw6ABoVFUVhYaHdtt69e5OamsrcuXOdqhl+/vx5srKyWL16\nNcHBwSxatIgnn3wSo1G1y4E9IYSo5ZXZLLZ/+/r6MnnyZGvN8JamAZrNZqqqqvjoo494//33mTNn\nDo8++ijjxo1rVf1xIYTwJl4bzGNiYliwYAHz5893qma4bU54586d8fHxoVu3ltc2dyepFyKEcBWv\nDOavv/46kyZNanEaYEFBAbt372bKlCmEhIQQGxtLREQE/v7+brnX1pDcZyGEK3llMM/NzXV4f71e\nz6ZNm8jOzmb//v3MmDGDd955x1owy1vJrEQhhCt59aShphgMBt566y0yMjK45ZZbeOihh1i1apVT\nizW3BakXIoTwBm0SzM1mMzqdDpPJRFBQEElJSTzxxBPEx8e3xe20SnsuXCWE6Dg8FsyNRiMXL160\nDmJGR0fTtWtXQkJCGDp0qKduw+WGDo1h27bcDlEeVwjRfrm9z/zUqVNkZWWxZs0a7rjjDj744IMO\nt2p9ey1cJYTwPl45ADpixAjOnDnDfffdx+OPP05iYqJbriWEEB2FVwbzTz75hHnz5hEYGOiWawgh\nREfjlcHcXecWQoiOytlg3vGX1hFCiBuABHMhhOgA2nzSUFuQWipCiI7mhuszl1oqQghv1m6n83va\noUN1AzlAcPBADh8+3qJgLq17IYQ3ueH6zF1RS6W2da/TDUSv749ON5Bt265QUFDkqtsUQogWueGC\nuStqqTTeur/aqnsTQghn3XDBfOjQGHS6uqV5LWuFRjt8DqmUKITwNk4Hc6XUdKVUrlLqhFLqaVfe\nlDvFxnZh4sQYQkKOExCQR0jI8RYPfkqlRCGEt3Eqm0Up5QscB6YCF4EcIE3TtGM2+3hlNosrSEaM\nEMJdPJ3NMhr4XtO0MzUXzwBmA8eaOqijsLTu4fDh49ZKiaNHNx/IJQNGCOEuzgbzHsB5m78vALe3\n/nbaj9jYLi1OZazfmt+2LZeJE5GALoRoNWf7zDtm/4kbSQaMEMKdnG2ZXwR62vzdE0vrvI5nn33W\n+ntycjLJyclOXq7lvK1LQzJghBAN2bp1K1u3bm31eZwdAPXDMgA6BbgEfI0DA6CeCrDeOEC5aVMu\nOt1Au8dDQo4zZcqANrgjIYQ38mgJXE3TjMDPgA3AUSDTNpA3xJOzJr2xS8MV+e1CCNEYp2uzaJq2\nHljv6P6uqoniCG/s0nA2A0YIIRzhsUJbngyw3jqpp6UZMEII4SiPTef3ZICVLg0hxI3GY/XMPT0o\nWVBQxOHDV61dGvHx0dIqFkJ4vXaxoLMEWCGEaFq7COZCCCGa5tHURCGEEN5FgrkQQnQAEsyFEKID\nkGAuhBAdgARzIYToACSYCyFEByDBXAghOgAJ5h7gilrFHYW8Fj+Q1+IH8lq0ngRzD5A36g/ktfiB\nvBY/kNei9SSYCyFEByDBXAghOgC31mZxy4mFEKKD86pCW0IIITxHulmEEKIDkGAuhBAdQKuDuVJq\nulIqVyl1Qin1dCP7vFaz/aBSakRrr+mtmnstlFIP1LwG3ymldimlEtriPv9/++YTYlUVx/HPF7WF\nCzUZcOEoaohIC1FJK5MUW5gLg1oEUaK1iCBxJ+LC3JRbdxKDRatclJDEYAQptlBhoDH7IzhqMJZI\nakqIixn8unhXGCaad56Xd+7z+PvAhXvu+8H5vi/nfN95596bg5RxUdU9J2lc0us59eUkcY5skPST\npF8kncwsMRsJc6RP0nFJw5UX2xuQ2XUkfSbpuqTzU9R0lpu2H/kApgEjwCJgBjAMLJ9UswUYrM7X\nAmfq9NmrR6IXLwCzq/PNT7IXE+p+AL4F3mhad4PjYg7wK9Bftfua1t2gF/uBAw99AG4C05vW3gUv\n1gMrgfP/83nHuVl3Zb4GGLH9h+0x4Ajw2qSarcAXALbPAnMkzavZby/S1gvbp23fqZpngf7MGnOR\nMi4AdgJfAX/nFJeZFC/eAr62fRXA9o3MGnOR4sU1YFZ1Pgu4aXs8o8Ys2P4R+GeKko5zs26YzwdG\nJ7SvVtfa1ZQYYileTOQ9YLCripqjrReS5tOayIeqS6U+VpUyLpYCcyWdkDQk6Z1s6vKS4sUA8Kyk\nv4BzwK5M2nqNjnNzes0OUyfg5GcmS5y4yd9J0kbgXWBd9+Q0SooXB4E9ti1J/HeMlEKKFzOAVcAm\nYCZwWtIZ2xe7qiw/KV7sBYZtb5D0DPC9pBW2/+2ytl6ko9ysG+Z/AgsmtBfQ+gWZqqa/ulYaKV5Q\n3fQcADbbnupv1uNMihergSOtHKcPeFXSmO1jeSRmI8WLUeCG7XvAPUmngBVAaWGe4sWLwMcAti9J\nugIsA4ayKOwdOs7NutssQ8BSSYskPQW8CUyejMeAbQCSngdu275es99epK0XkhYCR4G3bY80oDEX\nbb2wvcT2YtuLae2bf1BgkEPaHPkGeEnSNEkzad3w+i2zzhykeHEBeAWg2iNeBlzOqrI36Dg3a63M\nbY9L+hD4jtad6sO2f5f0fvX5p7YHJW2RNALcBXbU6bNXSfEC2Ac8DRyqVqRjttc0pblbJHrxRJA4\nRy5IOg78DNwHBmwXF+aJ4+IT4HNJ52gtNnfbvtWY6C4h6UvgZaBP0ijwEa3ttkfOzXidPwiCoADi\nDdAgCIICiDAPgiAogAjzIAiCAogwD4IgKIAI8yAIggKIMA+CICiACPMgCIICiDAPgiAogAfdTBEP\nYOAUkwAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0xe654c10>"
       ]
      }
     ],
     "prompt_number": 18
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 18
    }
   ],
   "metadata": {}
  }
 ]
}